• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
WordPress Developers Israel Meetup #1
 

WordPress Developers Israel Meetup #1

on

  • 4,218 views

 

Statistics

Views

Total Views
4,218
Views on SlideShare
3,305
Embed Views
913

Actions

Likes
0
Downloads
2
Comments
0

7 Embeds 913

http://softduit.com 853
http://wpdevil.org 40
http://translate.googleusercontent.com 11
http://www.slideshare.net 3
http://webcache.googleusercontent.com 3
http://softduit.zippykid.it 2
http://static.slidesharecdn.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • The reason we&#x2019;re here! <br />
  • Q: Who&#x2019;s running anything prior to 2.9? <br />
  • <br />
  • <br />
  • Movable type 5, released January 2010 <br />
  • Ugly betty - MacBook, Windows, Netscape, and WordPress! <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • to debug scripts and css: define(&apos;SCRIPT_DEBUG&apos;, true);Syntax highlighting (codepress) was dropped in 2.8.1 <br />
  • to debug scripts and css: define(&apos;SCRIPT_DEBUG&apos;, true);Syntax highlighting (codepress) was dropped in 2.8.1 <br />
  • + register_widget <br />
  • + register_widget <br />
  • + register_widget <br />
  • + register_widget <br />
  • to debug scripts and css: define(&apos;SCRIPT_DEBUG&apos;, true);Syntax highlighting (codepress) was dropped in 2.8.1 <br />
  • <br />
  • + register_widget <br />
  • to debug scripts and css: define(&apos;SCRIPT_DEBUG&apos;, true);Syntax highlighting (codepress) was dropped in 2.8.1 <br /> Speed for css and js <br />
  • Custom post types = not easy in 3.0 <br />
  • Custom post types = not easy in 3.0 <br />
  • Custom post types = not easy in 3.0 <br />
  • Custom post types = not easy in 3.0 <br />
  • Custom post types = not easy in 3.0 <br />
  • <br />
  • sip! <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • The best way to start theme development <br />
  • The best way to start theme development <br />
  • The best way to start theme development <br />
  • The best way to start theme development <br />
  • same for rtl.css <br />
  • same for rtl.css <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • Versions I&#x2019;ve personally contributed to. <br />
  • Versions I&#x2019;ve personally contributed to. <br />
  • Versions I&#x2019;ve personally contributed to. <br />
  • Versions I&#x2019;ve personally contributed to. <br />
  • Versions I&#x2019;ve personally contributed to. <br />
  • Versions I&#x2019;ve personally contributed to. <br />
  • Versions I&#x2019;ve personally contributed to. <br />
  • <br />
  • subversion - version control system <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

WordPress Developers Israel Meetup #1 WordPress Developers Israel Meetup #1 Presentation Transcript

  • WordPress Developers Meetup 15/04 - #WPDevIL yoav@farhi.org, @yoavf
  • Today we’ll talk about... Intro, WordPress developers meetup New features in recent versions 3.0 Getting involved with WordPress development Q&A
  • Hello!
  • Features History http://www.flickr.com/photos/nostri-imago/
  • 2.7
  • 2.9
  • 2.8
  • 2.7
  • 2.7
  • 2.7 • Completely new interface
  • 2.7 • Completely new interface • Comment threading
  • 2.7 • Completely new interface • Comment threading • Plugin repository
  • 2.7 • Completely new interface • Comment threading • Plugin repository • Child themes
  • 2.7 • Completely new interface • Comment threading • Plugin repository • Child themes • Automatic upgrades
  • 2.8
  • 2.8 • Integrated theme repository
  • 2.8 • Integrated theme repository • New widgets interface and API
  • Easy Widgets class MyWidget extends WP_Widget { function MyWidget() { $this->WP_Widget('MyWidget', __('My Widget')); } function widget($args, $instance) { ?> Hello, World! <?php } } add_action('widgets_init', create_function('', 'return register_widget("MyWidget");'));
  • Easy Widgets
  • Easy Widgets
  • Easy Widgets class MyWidget extends WP_Widget { function MyWidget() { $widget_ops = array( ); $this->WP_Widget('mywidget', __('MyWidget'), $widget_ops); } function widget($args, $instance) { } function form( $instance ) { } function update( $new_instance, $old_instance ) { } }
  • 2.8 • Integrated theme repository • New widgets interface and API
  • 2.8 • Integrated theme repository • New widgets interface and API • Better custom taxonomies
  • Taxonomies function people_taxonomy() { register_taxonomy( 'people', 'post', array( 'hierarchical' => false, 'label' => '‫;) ) 'אנשים‬ } add_action( 'init', 'people_taxonomy', 0 );
  • 2.8 • Integrated theme repository • New widgets interface and API • Better custom taxonomies
  • 2.8 • Integrated theme repository • New widgets interface and API • Better custom taxonomies • Speed
  • 2.9
  • 2.9 • General Undo/Trash feature
  • 2.9 • General Undo/Trash feature • Built in image editor
  • 2.9 • General Undo/Trash feature • Built in image editor • Easier video embeds (oembed)
  • 2.9 • General Undo/Trash feature • Built in image editor • Easier video embeds (oembed) • Custom post types
  • 2.9 • General Undo/Trash feature • Built in image editor • Easier video embeds (oembed) • Custom post types • Post thumbnails
  • Today we’ll talk about... Intro, WordPress developers meetup New features in recent versions 3.0 Getting involved with WordPress development Q&A
  • 3.0 ZOMFG!!!1
  • So, what’s in the bag? © Keren Segev, with permission
  • Custom Backgrounds
  • Backgrounds // functions.php add_custom_background();
  • Headers
  • Headers //functions.php define( 'HEADER_TEXTCOLOR', '' ); define( 'NO_HEADER_TEXT', true ); define( 'HEADER_IMAGE', '%s/images/headers/default.jpg' ); // %s is theme dir define( 'HEADER_IMAGE_WIDTH', 775 ); define( 'HEADER_IMAGE_HEIGHT', 200 ); add_custom_image_header( '', 'mytheme_admin_header_style' ); function mytheme_admin_header_style() { ?><style type="text/css"> #header { background: url(<?php header_image(); ?>); } </style><?php }
  • Headers // functions.php register_default_headers( array ( 'berries' => array ( 'url' => '%s/images/headers/berries.jpg', 'thumbnail_url' => '%s/images/headers/berries-thumbnail.jpg', 'description' => __( 'Berries', 'mytheme' ) ), 'cherryblossom' => array ( 'url' => '%s/images/headers/cherryblossoms.jpg', 'thumbnail_url' => '%s/images/headers/cherryblossoms-thumbnail.jpg', 'description' => __( 'Cherry Blossoms', 'mytheme' ) ) ) );
  • <p class="nocomments"><?php _e('Comments are closed.', 'kubrick'); ?></p> <?php } ?> <?php if ( comments_open() ) : ?> <div id="respond"> <h3><?php _e('Leave a Reply', 'kubrick'); ?></h3> <div class="cancel-comment-reply"> <small><?php cancel_comment_reply_link() ?></small> </div> <?php if ( get_option('comment_registration') && !$user_ID ) : ?> <p><?php printf(__('You must be <a href="%s">logged in</a> to post a comment.', 'kubrick'), get_option('siteurl') . '/wp-login.php?redirect_to=' . urlencode(get_permalink())); ?></p> <?php else : ?> <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform"> <?php comment_id_fields(); ?> <?php if ( $user_ID ) : ?> <p><?php printf(__('Logged in as <a href="%1$s">%2$s</a>.', 'kubrick'), get_option('siteurl') . '/wp-admin/profile.php', $user_identity); ?> <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Log out of this account', 'kubrick'); ?>"><?php _e('Logout &raquo;', 'kubrick'); ?></a></p> <?php else : ?> <p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> /> <label for="author"><small><?php _e('Name', 'kubrick'); ?> <?php if ($req) _e("(required)", "kubrick"); ?></small></label></p> <p><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> /> <label for="email"><small><?php _e('E-mail (will not be published)', 'kubrick'); ?> <?php if ($req) _e("(required)", "kubrick"); ?></small></label></p> <p><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" /> <label for="url"><small><?php _e('Website', 'kubrick'); ?></small></label></p> <?php endif; ?> <!--<p><small><?php printf(__('<strong>XHTML:</strong> You can use these tags: <code>%s</code>', 'kubrick'), allowed_tags()); ?></small></p>--> <p><textarea name="comment" id="comment" cols="58" rows="10" tabindex="4"></textarea></p> <p><input name="submit" type="submit" id="submit" tabindex="5" value="<?php _e('Submit Comment', 'kubrick'); ?>" /> <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" /> </p> <?php do_action('comment_form', $post->ID); ?> </form> <?php endif; // If registration required and not logged in ?> </div> ?>
  • Pluggable Comment form //comments.php comment_form();
  • Navigation menu
  • Navigation menu // functions.php add_theme_support( 'nav-menus' ); //header.php wp_list_pages('title_li='); wp_nav_menu(); * Will also work in a widget, with all widget enabled themes
  • Custom Post Types
  • Custom Post Types function post_type_reviews() { register_post_type('reviews', array( 'label' => '‫,'ביקורות‬ 'singular_label' => '‫,'ביקורת‬ 'description' => '‫,'ביקורות תוספים לוורדפרס‬ 'public' => true )); } add_action('init', 'post_type_reviews');
  • 2010: A Theme Odyssey
  • 2010: A Theme Odyssey
  • 2010: A Theme Odyssey
  • 2010 - The perfect example
  • 2010 - The perfect example Showcase for 3.0 new features
  • 2010 - The perfect example Showcase for 3.0 new features Complete, yet flexible
  • 2010 - The perfect example Showcase for 3.0 new features Complete, yet flexible Internationalized and translation ready
  • 2010 - The perfect example Showcase for 3.0 new features Complete, yet flexible Internationalized and translation ready Fully documented
  • A parent for your child theme
  • A parent for your child theme /* Theme Name: My New Theme Description: Child of Twentyten Version: 0.1 Author: Yoav Farhi Author URI: http://blog.yoavfarhi.com Template: twentyten */
  • A parent for your child theme /* Theme Name: My New Theme Description: Child of Twentyten Version: 0.1 Author: Yoav Farhi Author URI: http://blog.yoavfarhi.com Template: twentyten */ @import url(../twentyten/style.css); //optional
  • Multisite // wp-config.php define( 'WP_ALLOW_MULTISITE', true );
  • 3.0
  • • Custom Background / Header 3.0
  • • Custom Background / Header 3.0 • Pluggable comment form
  • • Custom Background / Header 3.0 • Pluggable comment form • Navigation menu
  • • Custom Background / Header 3.0 • Pluggable comment form • Navigation menu • Custom post types
  • • Custom Background / Header 3.0 • Pluggable comment form • Navigation menu • Custom post types • New default theme
  • • Custom Background / Header 3.0 • Pluggable comment form • Navigation menu • Custom post types • New default theme • Multisite
  • • Custom Background / Header 3.0 • Pluggable comment form • Navigation menu • Custom post types • New default theme • Multisite ...
  • Today we’ll talk about... Intro, WordPress developers meetup New features in recent versions 3.0 Getting involved with WordPress development Q&A
  • Don’t be afraid, use the trunk
  • Staying connected http://www.flickr.com/photos/versageek/
  • Average: 9 changesets a day
  • Staying Connected • Trac, directly or via RSS or twitter (@wpdevel) • Weekly dev chats on irc #wordpress-dev (Freenode) • The development updates blog: http://wpdevel.wordpress.com/
  • Contributing
  • Contributing Testing Translating RTLizing etc...
  • Q&A Matt Mullenweg
  • Next time? Caching Security Buddypress UGC SEO SVN E-commerce Plugins 101
  • Thank You!