Successfully reported this slideshow.
Your SlideShare is downloading. ×

WordCamp STL: How To Prepare and Submit Your Theme to the WPORG Theme REpository (and get it approved)

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 31 Ad

More Related Content

Slideshows for you (16)

Similar to WordCamp STL: How To Prepare and Submit Your Theme to the WPORG Theme REpository (and get it approved) (20)

Advertisement

WordCamp STL: How To Prepare and Submit Your Theme to the WPORG Theme REpository (and get it approved)

  1. 1. How to Prepare and Submit Your Theme For the WPORG Theme Repository (And get it approved!) Chip Bennett, WordCamp St. Louis, 06 August 2011 @chip_bennett
  2. 2. How to Prepare and Submit Your Theme For the WPORG Theme Repository Audience Developers Themes intended to be hosted by WPORG Agenda Preparing a Theme for public release Pre-Submission Theme Testing WPORG Theme Submission/Review/Approval Getting your Theme approved Related Preparing a Theme for Public Release, David Yeiser (@davidyeiser): http://www.slideshare.net/davidyeiser/how-to-prepare-a-wordpress-theme-for-public-release Theming for the Masses, Michael Fields (@_mfields): http://www.slideshare.net/MichaelFields/theming-for-the-masses 2 WordCamp St. Louis: 06 August 2011
  3. 3. Preparing a Theme for Public Release Philosophy and considerations 3 WordCamp St. Louis: 06 August 2011
  4. 4. Preparing a Theme for Public Release General considerations for publicly released Themes Design for universal use ● Site title/description ● Navigation/menus ● Hard-coded vs. configurable ● Social network links, favicons, copyright statements ● Core post types, taxonomies ● Custom post types, taxonomies ● Filtering core content ● Enqueueing scripts/stylesheets Ranges vs. edge cases 4 WordCamp St. Louis: 06 August 2011
  5. 5. Preparing a Theme for Public Release General considerations for publicly released Themes Incorporate core functionality: don’t re-invent the wheel ● Custom Header/Background ● Navigation Menus ● Post Thumbnails ● Post Formats ● Gallery posts, Aside posts, etc. Use core APIs wherever possible ● Hooks API ● Settings/Options/Theme Mods APIs ● Widgets API 5 WordCamp St. Louis: 06 August 2011
  6. 6. Preparing a Theme for Public Release General considerations for publicly released Themes Plugin integration / graceful degradation ● Breadcrumb navigation, paginated navigation ● Provide fallback: – if ( function_exists( ‘plugin_function’ ) { plugin_function(); } else { // fallback functionality } ● Remember content vs. presentation Failure modes for integrated features ● Navigation Menus: items, hierarchy depth, fallback output ● Overflow: site title/description, content width 6 WordCamp St. Louis: 06 August 2011
  7. 7. Preparing a Theme for Public Release Specific considerations for WPORG-hosted Themes Check your motivation ● Not wanted: – Non-free code of any kind – Unoriginal Themes only intended to generate backlinks – Sponsored/Spam links – Up-selling a commercial Theme via cripple-ware ● Wanted: – Giving back to the WordPress community – New developers working into the WordPress ecosystem – Showcasing unique/original/innovative design and functionality License ● 100% GPL-compatible ● Up-sell Themes must also be 100% GPL-compatible 7 WordCamp St. Louis: 06 August 2011
  8. 8. Preparing a Theme for Public Release Specific considerations for WPORG-hosted Themes Presentation vs. content ● Plugin Territory – Adding/modifying content – Shortcodes ● Custom Post Types/Taxonomies – Theme lock-in – Consider companion Plugin ● Exception? – Niche Themes 8 WordCamp St. Louis: 06 August 2011
  9. 9. Preparing a Theme for Public Release Specific considerations for WPORG-hosted Themes Child-Theme friendliness ● Bad: – Using get_template_directory_*() everywhere – Using few template files/no template-part files/no context ● Good: – Proper use of get_template_directory_*() / get_stylesheet_directory_*() ● Better: – Pluggable (override-able) functions – Using get_template_part( $file, $context) ● Best: – Functions hooked via add_action() – Content filtered via add_filter() ● Above and beyond: – Custom hooks 9 WordCamp St. Louis: 06 August 2011
  10. 10. Preparing a Theme for Public Release Specific considerations for WPORG-hosted Themes UI Consistency ● Settings Page UI ● Core-bundled scripts (e.g. jQuery) Implementation assumptions ● Document, document, document! ● Include a readme.txt (or equivalent) Future-proofing your code ● Pay attention to function deprecation ● Use core functions/template tags – get_search_form() – Settings API 10 WordCamp St. Louis: 06 August 2011
  11. 11. Pre-Submission Theme Testing Testing your Theme against WPORG Theme Review Guidelines before submission 11 WordCamp St. Louis: 06 August 2011
  12. 12. Pre-Submission Theme Testing Setting Up A Test Environment Clean WordPress Install, plus Plugins ● Theme Check, Log Deprecated Notices, Debug Bar, Debug Bar Extender, Debogger, FixPress, WordPress Beta Tester WordPress settings and Theme Mods ● wp-config.php: define( ‘WP_DEBUG’, true ) ● Settings: – General (Site Title, Tagline), Reading (# Posts per page) – Discussion (Threaded comments, Depth, # Comments per page) – Media (defaults), Permalinks (Pretty) ● Create custom menus (long, short) Theme Unit Test Data ● Install latest test data from the Codex – Check for updates periodically 12 WordCamp St. Louis: 06 August 2011
  13. 13. Pre-Submission Theme Testing Testing Process Guide: http://www.chipbennett.net/2011/04/20/a-guide-to-reviewing-themes-for-the-wordpress-theme-repository/ Policy Requirements: ● License, Credit Links, Theme Name, Screenshot Automated Tests: ● Theme Check, Log Deprecated Notices Code Quality ● HTML document head, scripts/stylesheets enqueued/hooked ● Template files, template tags, file includes ● functions.php Theme Unit Tests ● Activation tests/custom functionality ● Front-end tests 13 WordCamp St. Louis: 06 August 2011
  14. 14. WPORG Theme Submission/Review/Approval Process How it works and what to expect 14 WordCamp St. Louis: 06 August 2011
  15. 15. WPORG Theme Submission/Review/Approval Resources WordPress.org Theme Uploader Themes Subversion (SVN) Themes-Trac WordPress.org Extend/Themes WordPress Theme Review Team (WPTRT) Process Prepare/Upload Theme Package (developer) Generate Theme-Trac ticket (SVN/Trac) Theme Review/Approval (WPTRT reviewers) Synchronize SVN with Extend (WPTRT admins) 15 WordCamp St. Louis: 06 August 2011
  16. 16. WPORG Theme Submission/Review/Approval: Resources WordPress.org Theme Uploader Only way to submit Theme to the Repository ● (No SVN-commit access for themes.svn, at least, not yet) Includes several automated scripts/tests ● Synchronized with Theme Check Plugin 16 WordCamp St. Louis: 06 August 2011
  17. 17. WPORG Theme Submission/Review/Approval: Resources Themes SVN Where uploaded Theme files are stored, after the Theme ZIP archive is unpacked by the Theme uploader Perpetual repository: files are never deleted, except for extraordinarily egregious reasons SVN-checkout access 17 WordCamp St. Louis: 06 August 2011
  18. 18. WPORG Theme Submission/Review/Approval: Resources Themes-Trac Theme Review ticketing/tracking system Uploader assigns each uploaded Theme a new ticket Theme Review process takes place within Trac tickets Theme Review progress tracked via Trac reports Theme developers can post comments using WPORG login credentials 18 WordCamp St. Louis: 06 August 2011
  19. 19. WPORG Theme Submission/Review/Approval: Resources WordPress.org Extend/Themes Front-end for access/download of Repository-hosted Themes Heavily-modded bbPress install Must be manually synchronized with SVN after Theme is approved in Trac 19 WordCamp St. Louis: 06 August 2011
  20. 20. WPORG Theme Submission/Review/Approval: Resources WordPress Theme Review Team (WPTRT) Who are they? ● All-volunteer team of WordPress community members ● Mostly self-directing, under the WPORG umbrella ● Varying degrees of WordPress experience/expertise ● Undergo training period before gaining ticket resolution/closure privileges What is their purpose? ● Review and approve Theme tickets as quickly and as completely as possible ● Provide an educational resource for the WordPress Theme Developer community ● Encourage and establish community standards for Theme quality and best practices Anyone can get involved, and anyone interested is encouraged to do so! 20 WordCamp St. Louis: 06 August 2011
  21. 21. WPORG Theme Submission/Review/Approval: Process Prepare/Upload Theme (Developer) Remove any extraneous files ● .git or .svn directories, MACOSX files, backup files, etc. Compress the Theme as a ZIP file ● Filename doesn't matter; it is re-packaged by SVN upon upload Upload the ZIP file, using the WordPress.org Uploader. Generate Trac Ticket (SVN/Trac) If the uploader script finds no warning or required issues, the Theme is uploaded, and Trac ticket generated. ● Note: ensure that your Themes-Trac user profile includes an email address, so that you receive automated notification emails If the uploader script does find such issues, the upload fails, and the script returns a report of all detected issues 21 WordCamp St. Louis: 06 August 2011
  22. 22. WPORG Theme Submission/Review/Approval: Process Theme Review/Approval (WPTRT reviewers) A WPTRT Reviewer assigns himself the Trac ticket, and proceeds with the review. Any issues noted during the review are listed in a comment to the Trac ticket. ● Noted issues are indicated as either REQUIRED (must be fixed for Theme approval) or RECOMMENDED. ● Some Reviewers will attach screenshots to help clarify Theme issues, or may give additional information, suggestions, etc. If the Theme has any REQUIRED issues, the ticket is closed as “not-approved”. Otherwise, the ticket is closed as “approved”. 22 WordCamp St. Louis: 06 August 2011
  23. 23. WPORG Theme Submission/Review/Approval: Process Synchronize SVN with Extend (WPTRT admins) When a Trac ticket is closed, the version of the Theme included in the ticket must be synchronized with Extend. ● Approved Themes are synchronized as “approved” ● Not-Approved (or Newer-Version-Uploaded) Themes are synchronized as “old” This synchronization is a manual process, usually performed by a WPTRT admin at least once per day Once a Theme is synchronized as “approved”, it becomes the version available for download in Extend. ● Note: Extend is comprised of several servers; due to caching, it may take some time for the new version to propagate 23 WordCamp St. Louis: 06 August 2011
  24. 24. Getting Your Theme Approved Tips, tricks, and practical suggestions 24 WordCamp St. Louis: 06 August 2011
  25. 25. Getting Your Theme Approved While developing your Theme Don’t fork Kubrick/Default/Classic! Identify (and document) your assumptions If you have questions: Ask! ● Theme-Reviewers mail list, IRC, WPTRT Website Before you submit your Theme Pre-submission testing is critical Dry-run your Theme from the user’s perspective Volunteer to review other Themes After you submit your Theme Interact in the Trac Ticket 25 WordCamp St. Louis: 06 August 2011
  26. 26. Recap Whew! That was a lot! 26 WordCamp St. Louis: 06 August 2011
  27. 27. The WordPress Theme Repository Recap: Preparing a Theme for public release Pre-Submission Theme Testing WPORG Theme Submission/Review/Approval Getting your Theme approved Questions? 27 WordCamp St. Louis: 06 August 2011
  28. 28. Feedback You’ve heard from me; now I want to hear from you 28 WordCamp St. Louis: 06 August 2011
  29. 29. The WordPress Theme Repository Open Forum Feedback, criticism, and ideas for the WordPress Theme Repository: ● Theme Repository: – Theme Selection, – Theme Quality, – Child Themes/Theme Frameworks – etc. ● Theme Review – Submission/Review/Approval Process – Theme Review Guidelines 29 WordCamp St. Louis: 06 August 2011
  30. 30. Resources Sites and information referenced, and further reading 30 WordCamp St. Louis: 06 August 2011
  31. 31. The WordPress Theme Repository Resources Theme Development/Testing ● Theme Review Guidelines: http://codex.wordpress.org/Theme_Review ● Theme Unit Tests: http://codex.wordpress.org/Theme_Unit_Test ● Theme Review Setup: http://make.wordpress.org/themes/about/how-to-join-wptrt/ ● Theme Review Plugins: – Theme Check: http://wordpress.org/extend/plugins/theme-check/ – Log Deprecated Notices: http://wordpress.org/extend/plugins/log-deprecated-notices/ – Debug Bar: http://wordpress.org/extend/plugins/debug-bar/ – FixPress: http://wordpress.org/extend/plugins/fixpress/ – WordPress Beta Tester: http://wordpress.org/extend/plugins/wordpress-beta-tester/ ● Guide: http://www.chipbennett.net/2011/04/20/a-guide-to-reviewing-themes-for-the-wordpress-theme-repository/ Theme Submission/Review ● Theme Uploader: http://wordpress.org/extend/themes/upload/ ● Themes SVN: http://themes.svn.wordpress.org/ ● Theme-Trac: https://themes.trac.wordpress.org/ WordPress Theme Review Team ● Theme-Reviewers Mail List: http://lists.wordpress.org/mailman/listinfo/theme-reviewers ● WPTRT: http://make.wordpress.org/themes/ ● More Resources: http://make.wordpress.org/themes/guidelines/resources/ Editorials/Tutorials ● Theme Review: http://www.chipbennett.net/2010/10/20/in-defense-of-the-wordpress-theme-review-guidelines/ ● Theme Quality: http://www.chipbennett.net/2010/10/19/in-defense-of-the-wordpress-theme-review-process/ ● Settings API: http://www.chipbennett.net/2011/02/17/incorporating-the-settings-api-in-wordpress-themes/ 31 WordCamp St. Louis: 06 August 2011

×