How to Prepare and Submit Your Theme For the WPORG Theme Repository
@chip_bennett
(And get it approved!)
Chip Bennett, WordCamp St. Louis, 06 August 2011
How to Prepare and Submit Your Theme For the WPORG Theme RepositoryAudience
Developers Themes intended to be hosted by WPORG
AgendaPreparing a Theme for public releasePre-Submission Theme TestingWPORG Theme Submission/Review/ApprovalGetting your Theme approved
RelatedPreparing 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
Preparing a Theme for Public Release
Philosophy and considerations
WordCamp St. Louis: 06 August 20113
Preparing a Theme for Public ReleaseGeneral 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/stylesheetsRanges vs. edge cases
4 WordCamp St. Louis: 06 August 2011
Preparing a Theme for Public ReleaseGeneral 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
Preparing a Theme for Public ReleaseGeneral 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. presentationFailure modes for integrated features● Navigation Menus: items, hierarchy depth, fallback output● Overflow: site title/description, content width
6 WordCamp St. Louis: 06 August 2011
Preparing a Theme for Public ReleaseSpecific 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
Preparing a Theme for Public ReleaseSpecific 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
Preparing a Theme for Public ReleaseSpecific 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
Preparing a Theme for Public ReleaseSpecific 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
Pre-Submission Theme Testing
Testing your Theme against WPORG Theme Review Guidelines before submission
WordCamp St. Louis: 06 August 201111
Pre-Submission Theme TestingSetting Up A Test Environment
Clean WordPress Install, plus Plugins● Theme Check, Log Deprecated Notices, Debug Bar, Debug Bar
Extender, Debogger, FixPress, WordPress Beta TesterWordPress 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
Pre-Submission Theme TestingTesting 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, ScreenshotAutomated Tests: ● Theme Check, Log Deprecated NoticesCode Quality● HTML document head, scripts/stylesheets enqueued/hooked● Template files, template tags, file includes● functions.phpTheme Unit Tests● Activation tests/custom functionality● Front-end tests
13 WordCamp St. Louis: 06 August 2011
WPORG Theme Submission/Review/Approval Process
How it works and what to expect
WordCamp St. Louis: 06 August 201114
WPORG Theme Submission/Review/ApprovalResources
WordPress.org Theme UploaderThemes Subversion (SVN)Themes-TracWordPress.org Extend/ThemesWordPress Theme Review Team (WPTRT)
ProcessPrepare/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
WPORG Theme Submission/Review/Approval: ResourcesWordPress.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
WPORG Theme Submission/Review/Approval: ResourcesThemes SVN
Where uploaded Theme files are stored, after the Theme ZIP archive is unpacked by the Theme uploaderPerpetual repository: files are never deleted, except for extraordinarily egregious reasonsSVN-checkout access
17 WordCamp St. Louis: 06 August 2011
WPORG Theme Submission/Review/Approval: ResourcesThemes-Trac
Theme Review ticketing/tracking systemUploader assigns each uploaded Theme a new ticketTheme Review process takes place within Trac ticketsTheme Review progress tracked via Trac reportsTheme developers can post comments using WPORG login credentials
18 WordCamp St. Louis: 06 August 2011
WPORG Theme Submission/Review/Approval: ResourcesWordPress.org Extend/Themes
Front-end for access/download of Repository-hosted ThemesHeavily-modded bbPress installMust be manually synchronized with SVN after Theme is approved in Trac
19 WordCamp St. Louis: 06 August 2011
WPORG Theme Submission/Review/Approval: ResourcesWordPress 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
privilegesWhat 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 practicesAnyone can get involved, and anyone interested is encouraged to do so!
20 WordCamp St. Louis: 06 August 2011
WPORG Theme Submission/Review/Approval: ProcessPrepare/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 uploadUpload 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 emailsIf 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
WPORG Theme Submission/Review/Approval: ProcessTheme 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
WPORG Theme Submission/Review/Approval: ProcessSynchronize 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 dayOnce 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
Getting Your Theme Approved
Tips, tricks, and practical suggestions
WordCamp St. Louis: 06 August 201124
Getting Your Theme ApprovedWhile developing your Theme
Don’t fork Kubrick/Default/Classic!Identify (and document) your assumptionsIf you have questions: Ask!● Theme-Reviewers mail list, IRC, WPTRT Website
Before you submit your ThemePre-submission testing is criticalDry-run your Theme from the user’s perspectiveVolunteer to review other Themes
After you submit your ThemeInteract in the Trac Ticket
25 WordCamp St. Louis: 06 August 2011
Recap
Whew! That was a lot!
WordCamp St. Louis: 06 August 201126
The WordPress Theme RepositoryRecap:
Preparing a Theme for public releasePre-Submission Theme TestingWPORG Theme Submission/Review/ApprovalGetting your Theme approved
Questions?
27 WordCamp St. Louis: 06 August 2011
Feedback
You’ve heard from me; now I want to hear from you
WordCamp St. Louis: 06 August 201128
The WordPress Theme RepositoryOpen 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
Resources
Sites and information referenced, and further reading
WordCamp St. Louis: 06 August 201130
The WordPress Theme RepositoryResources
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
Top Related