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

31
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

description

 

Transcript of WordCamp STL: How To Prepare and Submit Your Theme to the WPORG Theme REpository (and get it...

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

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

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

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

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

Preparing a Theme for Public Release

Philosophy and considerations

WordCamp St. Louis: 06 August 20113

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pre-Submission Theme Testing

Testing your Theme against WPORG Theme Review Guidelines before submission

WordCamp St. Louis: 06 August 201111

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

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

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

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

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

WPORG Theme Submission/Review/Approval Process

How it works and what to expect

WordCamp St. Louis: 06 August 201114

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Getting Your Theme Approved

Tips, tricks, and practical suggestions

WordCamp St. Louis: 06 August 201124

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

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

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

Recap

Whew! That was a lot!

WordCamp St. Louis: 06 August 201126

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

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

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

Feedback

You’ve heard from me; now I want to hear from you

WordCamp St. Louis: 06 August 201128

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

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

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

Resources

Sites and information referenced, and further reading

WordCamp St. Louis: 06 August 201130

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

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