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 wit...
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
      • Auto...
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')...
Easy Widgets
Easy Widgets
Easy Widgets
    class MyWidget extends WP_Widget {

    function MyWidget() {
      $widget_ops = array( );
      $this->...
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' ...
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
      • Spe...
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 p...
2.9
      • General Undo/Trash feature
      • Built in image editor
      • Easier video embeds (oembed)
      • Custom p...
Today we’ll talk about...

 Intro, WordPress developers meetup
 New features in recent versions
 3.0
 Getting involved wit...
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', '%...
Headers
// functions.php

register_default_headers( array (
    'berries' => array (
          'url' => '%s/images/headers...
<p class="nocomments"><?php _e('Comments are closed.', 'kubrick'); ?></p>
<?php } ?>

<?php if ( comments_open() ) : ?>
<d...
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_m...
Custom Post Types
Custom Post Types
    function post_type_reviews() {
        register_post_type('reviews', array(
          'label' => '‫,...
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 read...
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 ...
A parent for your child theme
  /*
 Theme Name: My New Theme
 Description: Child of Twentyten
 Version: 0.1
 Author: Yoav ...
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
     ...
• 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
     ...
Today we’ll talk about...

 Intro, WordPress developers meetup
 New features in recent versions
 3.0
 Getting involved wit...
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)
• ...
Contributing
Contributing

  Testing
  Translating
  RTLizing
  etc...
Q&A
Matt Mullenweg
Next time?
            Caching
 Security             Buddypress


                      UGC          SEO
            SVN

...
Thank You!
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
WordPress Developers Israel Meetup #1
Upcoming SlideShare
Loading in...5
×

WordPress Developers Israel Meetup #1

4,267

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
4,267
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide


  • The reason we&amp;#x2019;re here!
  • Q: Who&amp;#x2019;s running anything prior to 2.9?


  • Movable type 5, released January 2010
  • Ugly betty - MacBook, Windows, Netscape, and WordPress!











  • to debug scripts and css: define(&apos;SCRIPT_DEBUG&apos;, true);Syntax highlighting (codepress) was dropped in 2.8.1
  • to debug scripts and css: define(&apos;SCRIPT_DEBUG&apos;, true);Syntax highlighting (codepress) was dropped in 2.8.1
  • + register_widget
  • + register_widget
  • + register_widget
  • + register_widget
  • to debug scripts and css: define(&apos;SCRIPT_DEBUG&apos;, true);Syntax highlighting (codepress) was dropped in 2.8.1

  • + register_widget
  • to debug scripts and css: define(&apos;SCRIPT_DEBUG&apos;, true);Syntax highlighting (codepress) was dropped in 2.8.1
    Speed for css and js
  • Custom post types = not easy in 3.0
  • Custom post types = not easy in 3.0
  • Custom post types = not easy in 3.0
  • Custom post types = not easy in 3.0
  • Custom post types = not easy in 3.0

  • sip!















  • The best way to start theme development
  • The best way to start theme development
  • The best way to start theme development
  • The best way to start theme development
  • same for rtl.css
  • same for rtl.css




  • Versions I&amp;#x2019;ve personally contributed to.
  • Versions I&amp;#x2019;ve personally contributed to.
  • Versions I&amp;#x2019;ve personally contributed to.
  • Versions I&amp;#x2019;ve personally contributed to.
  • Versions I&amp;#x2019;ve personally contributed to.
  • Versions I&amp;#x2019;ve personally contributed to.
  • Versions I&amp;#x2019;ve personally contributed to.

  • subversion - version control system














  • WordPress Developers Israel Meetup #1

    1. 1. WordPress Developers Meetup 15/04 - #WPDevIL yoav@farhi.org, @yoavf
    2. 2. Today we’ll talk about... Intro, WordPress developers meetup New features in recent versions 3.0 Getting involved with WordPress development Q&A
    3. 3. Hello!
    4. 4. Features History http://www.flickr.com/photos/nostri-imago/
    5. 5. 2.7
    6. 6. 2.9
    7. 7. 2.8
    8. 8. 2.7
    9. 9. 2.7
    10. 10. 2.7 • Completely new interface
    11. 11. 2.7 • Completely new interface • Comment threading
    12. 12. 2.7 • Completely new interface • Comment threading • Plugin repository
    13. 13. 2.7 • Completely new interface • Comment threading • Plugin repository • Child themes
    14. 14. 2.7 • Completely new interface • Comment threading • Plugin repository • Child themes • Automatic upgrades
    15. 15. 2.8
    16. 16. 2.8 • Integrated theme repository
    17. 17. 2.8 • Integrated theme repository • New widgets interface and API
    18. 18. 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");'));
    19. 19. Easy Widgets
    20. 20. Easy Widgets
    21. 21. 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 ) { } }
    22. 22. 2.8 • Integrated theme repository • New widgets interface and API
    23. 23. 2.8 • Integrated theme repository • New widgets interface and API • Better custom taxonomies
    24. 24. Taxonomies function people_taxonomy() { register_taxonomy( 'people', 'post', array( 'hierarchical' => false, 'label' => '‫;) ) 'אנשים‬ } add_action( 'init', 'people_taxonomy', 0 );
    25. 25. 2.8 • Integrated theme repository • New widgets interface and API • Better custom taxonomies
    26. 26. 2.8 • Integrated theme repository • New widgets interface and API • Better custom taxonomies • Speed
    27. 27. 2.9
    28. 28. 2.9 • General Undo/Trash feature
    29. 29. 2.9 • General Undo/Trash feature • Built in image editor
    30. 30. 2.9 • General Undo/Trash feature • Built in image editor • Easier video embeds (oembed)
    31. 31. 2.9 • General Undo/Trash feature • Built in image editor • Easier video embeds (oembed) • Custom post types
    32. 32. 2.9 • General Undo/Trash feature • Built in image editor • Easier video embeds (oembed) • Custom post types • Post thumbnails
    33. 33. Today we’ll talk about... Intro, WordPress developers meetup New features in recent versions 3.0 Getting involved with WordPress development Q&A
    34. 34. 3.0 ZOMFG!!!1
    35. 35. So, what’s in the bag? © Keren Segev, with permission
    36. 36. Custom Backgrounds
    37. 37. Backgrounds // functions.php add_custom_background();
    38. 38. Headers
    39. 39. 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 }
    40. 40. 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' ) ) ) );
    41. 41. <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> ?>
    42. 42. Pluggable Comment form //comments.php comment_form();
    43. 43. Navigation menu
    44. 44. 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
    45. 45. Custom Post Types
    46. 46. Custom Post Types function post_type_reviews() { register_post_type('reviews', array( 'label' => '‫,'ביקורות‬ 'singular_label' => '‫,'ביקורת‬ 'description' => '‫,'ביקורות תוספים לוורדפרס‬ 'public' => true )); } add_action('init', 'post_type_reviews');
    47. 47. 2010: A Theme Odyssey
    48. 48. 2010: A Theme Odyssey
    49. 49. 2010: A Theme Odyssey
    50. 50. 2010 - The perfect example
    51. 51. 2010 - The perfect example Showcase for 3.0 new features
    52. 52. 2010 - The perfect example Showcase for 3.0 new features Complete, yet flexible
    53. 53. 2010 - The perfect example Showcase for 3.0 new features Complete, yet flexible Internationalized and translation ready
    54. 54. 2010 - The perfect example Showcase for 3.0 new features Complete, yet flexible Internationalized and translation ready Fully documented
    55. 55. A parent for your child theme
    56. 56. 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 */
    57. 57. 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
    58. 58. Multisite // wp-config.php define( 'WP_ALLOW_MULTISITE', true );
    59. 59. 3.0
    60. 60. • Custom Background / Header 3.0
    61. 61. • Custom Background / Header 3.0 • Pluggable comment form
    62. 62. • Custom Background / Header 3.0 • Pluggable comment form • Navigation menu
    63. 63. • Custom Background / Header 3.0 • Pluggable comment form • Navigation menu • Custom post types
    64. 64. • Custom Background / Header 3.0 • Pluggable comment form • Navigation menu • Custom post types • New default theme
    65. 65. • Custom Background / Header 3.0 • Pluggable comment form • Navigation menu • Custom post types • New default theme • Multisite
    66. 66. • Custom Background / Header 3.0 • Pluggable comment form • Navigation menu • Custom post types • New default theme • Multisite ...
    67. 67. Today we’ll talk about... Intro, WordPress developers meetup New features in recent versions 3.0 Getting involved with WordPress development Q&A
    68. 68. Don’t be afraid, use the trunk
    69. 69. Staying connected http://www.flickr.com/photos/versageek/
    70. 70. Average: 9 changesets a day
    71. 71. 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/
    72. 72. Contributing
    73. 73. Contributing Testing Translating RTLizing etc...
    74. 74. Q&A Matt Mullenweg
    75. 75. Next time? Caching Security Buddypress UGC SEO SVN E-commerce Plugins 101
    76. 76. Thank You!
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×