WordPress Developers Israel Meetup #1

4,354
-1

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,354
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’re here!
  • Q: Who’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('SCRIPT_DEBUG', true);Syntax highlighting (codepress) was dropped in 2.8.1
  • to debug scripts and css: define('SCRIPT_DEBUG', true);Syntax highlighting (codepress) was dropped in 2.8.1
  • + register_widget
  • + register_widget
  • + register_widget
  • + register_widget
  • to debug scripts and css: define('SCRIPT_DEBUG', true);Syntax highlighting (codepress) was dropped in 2.8.1

  • + register_widget
  • to debug scripts and css: define('SCRIPT_DEBUG', 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’ve personally contributed to.
  • Versions I’ve personally contributed to.
  • Versions I’ve personally contributed to.
  • Versions I’ve personally contributed to.
  • Versions I’ve personally contributed to.
  • Versions I’ve personally contributed to.
  • Versions I’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!

    ×