There is new slide for this at http://www.slideshare.net/catchinternet/contributing-to-wordpress-theme-review-at-wordpressorg
Guide to Start WordPress Theme Review. Useful for WordPress Theme Developers, wannabe WordPress Theme Developers and wannabe WordPress Theme Reviewer
3. Why?
- Contributing to WordPress Community
- Get Recognition
- Build International Partners and Co-workers
- Start Earning
Related:
Starting WordPress Theme Development
http://www.slideshare.net/catchinternet/starting-wordpress-theme-
development
5. How Theme Review Team Works
• WordPress Theme
Repositoryhttp://wordpress.org/extend/themes/
• Make WordPress Theme
Bloghttp://make.wordpress.org/themes/
• Theme Guidehttp://developer.wordpress.com/themes/
• Theme Review Mailing
Listhttp://lists.wordpress.org/mailman/listinfo/theme-
reviewers
• Theme Trachttps://themes.trac.wordpress.org/
• Internet Relay Chat- IRC http://codex.wordpress.org/IRC
6.
7.
8.
9.
10.
11. How to Join WPTRT
• Sign up for account in WordPress.org
• Subscribe to Theme Review Mailing List
• Go to Theme Review Trac Ticket Request Queue page
http://make.wordpress.org/themes/about/trac-ticket-request-
queue/
• Leave a comment asking to be assigned a Theme. Be
sure to include your WordPress.org username with your
request.
• Soon after 8 to 10 reviews you will be assign Theme
Reviewer, then you can just review theme as per the
priority list in Theme Trac.
12. Theme Trac
• Current approved theme. priority #1
• Ticket older then two weeks. priority #2
• Previously Reviewed, but not Approved theme. priority
#3
• New Themes, Never Reviewed. priority #4
13. Theme Review
• Ticket are assigned by priority
• Reviewers assign tickets to themselves.
• Issues are noted in a comment.
• Ticket are closed as Approved or Not-Approved.
• Previously approved tickets mostly diff review only.
14.
15.
16. Setup a WordPress test environment
• Install Latest Version of WordPress
• Install plugin WordPress
Importerhttp://wordpress.org/extend/plugins/wordpress-importer/
• Import the Theme Unit Test datahttps://wpcom-
themes.svn.automattic.com/demo/theme-unit-test-data.xml
• Install “Developer”
pluginhttp://wordpress.org/extend/plugins/developer/
• Settings:
– General (Site Title, Tagline), Reading (# Posts per page)
– Discussion (Threaded comments, Depth, # Comments per page)
– Media (defaults), Permalinks (Pretty)
• Set WP_Debug to „true‟ in wp-config
– define('WP_DEBUG', true);
• Check for any extraneous file
– .git or .svn, MACOSX files, backup files, etc
19. Before Looking at the Code
• Theme Name
• Author URI and Theme URI
• Footer Credit Link
• License
• Copyright
• Screenshot
• Correct Spelling of WordPress
• Automated Test: Theme Check and Log deprecated
Notices.
20. Guidelines (Unit Test)
http://codex.wordpress.org/Theme_Unit_Test
• Static Front Page
• Blog Posts Index Page
– Scheduled Post, Draft Post, Layout Test, Readability Test, Post Format Tests, This
Post Has No Body, No Title, Many Categories, Many Tags, Protect Test With Secret
Password,
• Single Post
– Layout Test, Readability Test, Image Test, Post Format All, Post With Long Title, This
Post Has No Body, No Title, Many Categories, Many Tags, Protected Test With Secret
Password, Comment Test, Comments Disabled, Many Trackbacks
• Pages
– Page With Comments, Page With Comments Disabled, Parent Page, Child Page 1,
Child Page 2, Clearing Floats
• Misc Pages
– Search Results, Not Found, 404 page
• General
– Menus, Widgets, screenshot, Anchor Text and Credit Link
21. Guidelines (Code Quality)
http://codex.wordpress.org/Theme_Review
• Themes must not generate any WordPress Deprecated
function notices. Note: Themes must not support
backward compatibility for more than 2 prior major WP
versions.
• Check PHP, JS, CSS, HTML errors
• Doctype Declaration
• Theme Namespacing, theme-slug, textdomain
• Hard-codes vs. configurable
• Incorporate core functionality and don‟t re-invent
• Use core APIs where possible
22. Guidelines (Presentation Vs. Functionality)
http://codex.wordpress.org/Theme_Review
• Language
– All public-facing text in English
– Optionally incorporate translation/internationalization
– Themes are required to use as string as the textdomain in
translation functions
• Favicons
– Recommended to implement custom favicon functionality
– If implement, add is support for user-defined favicon images
• Plugin Territory
– Adding/Modifying content, Shortcodes, Metabox
• Custom Post Types/ Taxonomies
– Theme Lock-in, Consider companion plugin
23. Guidelines (Required Theme
Features)
http://codex.wordpress.org/Theme_Review
• Automatic Feed Links.
add_theme_support( 'automatic-feed-links' );
• Sidebars
register_sidebar();
dynamic_sidebar();
If Theme uses custom widgets, then
add_action(widgets_init); register_widget();
• Comments
comments_template();
wp_list_comments();
comment_form()
wp_enqueue_script( 'comment-reply' );
If using callback for wp_list_comments(); then
comment_class();
25. Guidelines (Required Hooks & Navigation)
http://codex.wordpress.org/Theme_Review
Tags and hooks, that are required to be included where appropriate:
• wp_title();
• wp_head(); immediately before </head>
• body_class(); inside <body> tag
• wp_title();
• $content_width
• post_class();
• wp_link_pages();
• paginate_comments_links();, or
previous_comments_link();/next_comments_link();
• posts_nav_link();, or previous_posts_link();/next_posts_link();, or
paginate_links();
• wp_footer(); immediately before </body>
26. Guidelines (Required Hooks & Navigation)
http://codex.wordpress.org/Theme_Review
Standard Template files: required to be called using the correct template tag.
• comments.php ( via comments_template(); )
• header.php ( via get_header(); )
• footer.php ( via get_footer(); )
• sidebar.php ( via get_sidebar(); )
• searchform.php ( via get_search_form(); )
Custom Template files: required to be called
• get_template_part(); or locate_template();
• Example: get_template_part( 'content', get_post_format() );
• include( get_template_directory() . '/file.php' ) must not be used to call Theme
template part files.
27. Guidelines (Required Hooks & Navigation)
http://codex.wordpress.org/Theme_Review
You also have several functions available for getting the path:
• get_template_directory()
File path to parent Theme directory. Returns the absolute template
directory path.
• get_template_directory_uri()
URL path to parent Theme directory. Returns the template directory URI.
• get_stylesheet_directory()
File path to current Theme directory. Returns the absolute stylesheet
directory path.
• get_stylesheet_directory_uri()
URL path to current Theme directory. Returns the stylesheet directory URI.
Example:
// Load up our theme options page and related code.
require( get_template_directory() . '/inc/theme-options.php' )
28. Guidelines (Required Hooks & Navigation)
http://codex.wordpress.org/Theme_Review
• Never hard-coding stylesheet/script links
For Deregistering Scripts & Styles
– wp_deregister_script()
– wp_deregister_style()
For Registering Scripts & Styles
– wp_register_script()
– wp_register_style()
For EnqueueScripts & Styles
– wp_enqueue_script()
– wp_enqueue_style()
• Themes are required to use core-bundled scripts, if using such scripts
• Themes must not use TimThumb
29. Guidelines (Required Hooks & Navigation)
http://codex.wordpress.org/Theme_Review
• If used, themes are required to modify the title, body class, post
class through filter
– wp_title()
– body_class()
– post_class();
30. Guidelines (WordPress – Generated CSS Classes)
http://codex.wordpress.org/Theme_Review
Themes are required to support the following WordPress-defined CSS
classes, or similar elements:
• Alignment Classes
– aligncenter, alignleft, alignright
• Caption Related Classes (Gallery)
– wp-caption, wp-caption-text, gallery-caption
• Post Classes
– sticky
• Comment Classes
– bypostauthor
31.
32. Guidelines (Template Files)
http://codex.wordpress.org/Theme_Review
• Required
– index.php
– comments.php
– screenshot.png
• Recommended 4:3 W:H ratio, size 600x450px (2x the previous 300x225px, to
account for Retina displays).
– style.css
Note:
Child Themes may include less than this, since they depend on
functionality of the parent theme.
33. Guidelines (Template Files)
http://codex.wordpress.org/Theme_Review
• Recommended
– 404.php
– archieve.php
– page.png
– search.css
– single.php
– header.php
– footer.php
– sidebar.php
• Note
header.php, footer.php, and sidebar.php include variations such as:
sidebar-left.php, sidebar-right.php, sidebar-footer.php, etc.
34. Guidelines (Security & Privacy)
http://codex.wordpress.org/Theme_Review
• Unique Prefix
• If used theme options panel, required to implement Theme Options
and Theme Setting page.
• Use the add_theme_page() function to add the Theme Settings
Page rather than using add_menu_page() to add a top-level menu.
• Required to use the edit_theme_options capability rather than rely
on a role.
• Use single array to save theme option.
• Themes are required to use esc_attr() for text inputs , esc_html()
for textareas, esc_url() for url, esc_js() for javascript.
• Use validate and sanitize all untrusted data.
http://codex.wordpress.org/Data_Validation
35. Guidelines (Theme Documentation)
http://codex.wordpress.org/Theme_Review
• Themes are required to provide end-user
documentation of any design limitations or
extraordinary installation/setup instructions
• Themes are recommended to include a readme.txt file,
using Plugin readme.txt markdown.
• In lieu of a readme.txt file, Themes are recommended to
include a changelog, indicating version-to-version
Theme changes.
36. For Theme Reviewer: After All Theme Checks
(Leave your Comment in Trac)
• After all theme checks
• You just leave a comment as Suggested for Approved or Suggest
for Not-Approved
• Then leave the comment of Each Test Issues if any
• Suggest the way to fix the issues
• After enough checks ideally 10 an above, you will be assigned as
Reviewer. You can also ask admin team to make you reviewer.
• After you are assign as Reviewer, you can assign and close ticket
independently.
37. For Theme Developer: After All Theme Checks
(Upload your Theme To WordPress.org)
• After all these Test
• zip your theme
• Upload your theme to WordPress.org Theme Repository at
http://wordpress.org/extend/themes/upload
• Wait for your theme to get approved and listed in WordPress.org
Theme Repository at http://wordpress.org/extend/themes/