SlideShare a Scribd company logo
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
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
Preparing a Theme for Public
    Release
                            Philosophy and considerations




3             WordCamp St. Louis: 06 August 2011
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
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
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
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
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
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
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
Pre-Submission Theme Testing

     Testing your Theme against WPORG Theme Review
                          Guidelines before submission




11             WordCamp St. Louis: 06 August 2011
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
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
WPORG Theme Submission/Review/Approval Process



                         How it works and what to expect




14            WordCamp St. Louis: 06 August 2011
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
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
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
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
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
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
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
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
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
Getting Your Theme Approved

               Tips, tricks, and practical suggestions




24        WordCamp St. Louis: 06 August 2011
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
Recap

                                 Whew! That was a lot!




26       WordCamp St. Louis: 06 August 2011
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
Feedback

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




28            WordCamp St. Louis: 06 August 2011
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
Resources

     Sites and information referenced, and further reading




30              WordCamp St. Louis: 06 August 2011
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

More Related Content

ODP
WordCampGR 2012: Developing Child-Theme Friendly Themes
ODP
WordCamp Nashville 2013 - Custom Layouts Without Custom Page Templates
ODP
WordCamp TOR: Beyond The Guidelines - Theme Development Best Practices (Vol 1)
PPTX
WordCamp KC: The WordPress Theme Repository
PPTX
Best Practices and Tips on Migrating a Legacy-Based CMS to Drupal
PPT
Wordpress template hierarchy
PPTX
Complex Content Structures and Workflow with Drupal
PDF
Content First – Planning Drupal Content Types
WordCampGR 2012: Developing Child-Theme Friendly Themes
WordCamp Nashville 2013 - Custom Layouts Without Custom Page Templates
WordCamp TOR: Beyond The Guidelines - Theme Development Best Practices (Vol 1)
WordCamp KC: The WordPress Theme Repository
Best Practices and Tips on Migrating a Legacy-Based CMS to Drupal
Wordpress template hierarchy
Complex Content Structures and Workflow with Drupal
Content First – Planning Drupal Content Types

What's hot (16)

PPTX
Pat Farrell, Migrating Legacy Documentation to XML and DITA
PDF
Preventing Drupal Headaches: Content Type Checklist
PPTX
Keeping Your Themes and Plugins Organized.
KEY
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)
PDF
Firstborn child theme word camp presentation - atlanta 2013
PPTX
Theme development essentials columbus oh word camp 2012
PPTX
WP Joburg Meetup 10: Genesis Framework by Trish Cornelius
KEY
Beyond WP-CONTENT | #WCRaleigh
PDF
DITA Quick Start
KEY
Intro To WordPress Themes
PDF
Don't Fear the Custom Theme: How to build a custom WordPress theme with only ...
PDF
Builing a WordPress Theme
KEY
Hello Drupal
PDF
There's No Crying In Wordpress! (an intro to WP)
PPTX
DITA Quick Start: System Architecture of a Basic DITA Toolset
PDF
2 Training on webwroks for Word
Pat Farrell, Migrating Legacy Documentation to XML and DITA
Preventing Drupal Headaches: Content Type Checklist
Keeping Your Themes and Plugins Organized.
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)
Firstborn child theme word camp presentation - atlanta 2013
Theme development essentials columbus oh word camp 2012
WP Joburg Meetup 10: Genesis Framework by Trish Cornelius
Beyond WP-CONTENT | #WCRaleigh
DITA Quick Start
Intro To WordPress Themes
Don't Fear the Custom Theme: How to build a custom WordPress theme with only ...
Builing a WordPress Theme
Hello Drupal
There's No Crying In Wordpress! (an intro to WP)
DITA Quick Start: System Architecture of a Basic DITA Toolset
2 Training on webwroks for Word
Ad

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

PPT
Week 11 - Hosting and Migration
PPTX
From WordPress With Love
ODP
Bootstrap4 x pages
PDF
Week6 office-hours
PDF
Drupal in-depth
PDF
Plugin development demystified 2017
PDF
Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...
PDF
Beginning WordPress Workshop
PPTX
Guidelines for Working with Contract Developers in Evergreen
PDF
15 Essential WordPress Plugins
PPTX
Bootstrap4XPages webinar
PDF
Plugins: A double-edged sword
PDF
Openoffice extensions and templates
PPTX
Google App Engine for Developers
PDF
WordPress: After The Install
PDF
Open Innovation Lab (OIL) - 2014 Sep 26th
PPTX
Rapid Application Development on Google App Engine for Java
ODP
Hong Kong Drupal User Group - 2014 June 14th
PPTX
Massively maintained accessibility: WordPress
Week 11 - Hosting and Migration
From WordPress With Love
Bootstrap4 x pages
Week6 office-hours
Drupal in-depth
Plugin development demystified 2017
Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...
Beginning WordPress Workshop
Guidelines for Working with Contract Developers in Evergreen
15 Essential WordPress Plugins
Bootstrap4XPages webinar
Plugins: A double-edged sword
Openoffice extensions and templates
Google App Engine for Developers
WordPress: After The Install
Open Innovation Lab (OIL) - 2014 Sep 26th
Rapid Application Development on Google App Engine for Java
Hong Kong Drupal User Group - 2014 June 14th
Massively maintained accessibility: WordPress
Ad

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
cuic standard and advanced reporting.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Modernizing your data center with Dell and AMD
PPT
Teaching material agriculture food technology
PDF
KodekX | Application Modernization Development
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
CIFDAQ's Market Insight: SEC Turns Pro Crypto
cuic standard and advanced reporting.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Network Security Unit 5.pdf for BCA BBA.
NewMind AI Weekly Chronicles - August'25 Week I
“AI and Expert System Decision Support & Business Intelligence Systems”
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Spectral efficient network and resource selection model in 5G networks
Unlocking AI with Model Context Protocol (MCP)
Modernizing your data center with Dell and AMD
Teaching material agriculture food technology
KodekX | Application Modernization Development
MYSQL Presentation for SQL database connectivity
Agricultural_Statistics_at_a_Glance_2022_0.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Per capita expenditure prediction using model stacking based on satellite ima...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

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

  • 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. 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. Preparing a Theme for Public Release Philosophy and considerations 3 WordCamp St. Louis: 06 August 2011
  • 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. 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. 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. 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. 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. 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. 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. Pre-Submission Theme Testing Testing your Theme against WPORG Theme Review Guidelines before submission 11 WordCamp St. Louis: 06 August 2011
  • 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. 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. WPORG Theme Submission/Review/Approval Process How it works and what to expect 14 WordCamp St. Louis: 06 August 2011
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Getting Your Theme Approved Tips, tricks, and practical suggestions 24 WordCamp St. Louis: 06 August 2011
  • 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. Recap Whew! That was a lot! 26 WordCamp St. Louis: 06 August 2011
  • 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. Feedback You’ve heard from me; now I want to hear from you 28 WordCamp St. Louis: 06 August 2011
  • 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. Resources Sites and information referenced, and further reading 30 WordCamp St. Louis: 06 August 2011
  • 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