Skip to content

Instantly share code, notes, and snippets.

@kafleg
Last active August 29, 2015 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kafleg/5e0df1fd549aba741bf0 to your computer and use it in GitHub Desktop.
Save kafleg/5e0df1fd549aba741bf0 to your computer and use it in GitHub Desktop.
WordPress Theme Review Standards
Why theme Review?
Contribution to WordPress Community.
Get Recognition.
Enhance skill.
Build international partners and co-workers.
Start earning.
Reduce the queue for theme check
Make WordPress with full standards
Beginning theme review on your local system.
Install the latest version of WordPress. (wordpress.org)
Install Plugin WordPress Importer. (https://wordpress.org/plugins/wordpress-importer/)
Import the Dummy test data. Get the dummy test data from ( https://wpcom-themes.svn.automattic.com/demo/theme-unit-test-data.xml Import test data into your WordPress install. Do this by going to Tools -> Import, using the “Download and import file attachements” option. Note you may have to repeat the Import step until you see “All Done” to obtain the full list of Posts and Media.
Install Developer Plugin (http://wordpress.org/extend/plugins/developer/ ).
Minimum plugin install are: (Note: all plugins below can be installed via the Developer plugin):
Theme Check
Debug bar
Log Deprecated Notices
Monoster Widget
WordPress Beta Tester
Regenerate Thumbnails
Upload the theme which you are going to review. Activate it.
WordPress Setting:
General
Site title, tagline
Set the site title to something fairly long and set tagline something even more longer.
Reading
Post per page
Blog pages show at most” to 5. This setting will ensure that index/archive pagination is triggered.
Discussion
Enable Threaded Comments, at least 3 levels deep. This setting will facilitate testing of Theme comment list styling.
Discussion:
Enable Break comments into pages, and set 5 comments per page. This setting will facilitate testing of Theme paginating link markup/styling.
Media:
Ensure that no values are set for max width or height of embedded media.
Permalinks:
Ensure that a non-default permalink setting is selected, e.g. “post name” http://localhost/themecheck/sample-post/
Create at least two custom menu:
Long menu: Include all pages
Short menu: Include only 2-3 pages.
Static Front page:
The Front Page displays properly, and as intended
The Blog Posts index page displays properly
Debugger returns no PHP errors, warnings, or notices
The browser reports no JavaScript errors
404 page
Ensure that the 404 page is working with no any php, javascript warning and errors.
Search Result page:
The Search Results page displays properly, with search query results displayed. Ensure, no any JS, PHP warning and errors.
Ensure that:
Posts display correctly, with no apparent visual problems or errors.
Posts display in correct order.
Correct number of posts display (as per setting in Settings> Reading).
Page navigation displays and works correctly.
Debugger returns no PHP errors, warnings, or notices.
The browser reports no JavaScript errors.
Blog post index page: ( Check the following also)
Scheduled Post: Theme should not displayed it.
Draft Post: Theme should not displayed it.
Readability test: Need proper link to “Read more” text and links to single page.
Note: Theme must not generate any WordPress deprecated function notices. Theme must not support backward compatibility for more than 2 prior WP versions.
Language:
All public facing text in English.
Themes are required to use as string as the text domain in translation functions.
Can use any language for text, but only use the same one for all text.
Favicons:
Recommended to implement custom favicon functionality.
If implement, Add support for user-defined favicon images. Disable favicons by default.
Plugins:
Don’t include any plugin. A theme can recommend plugins.
Screenshot:
No logo or mock up, should be of actual theme as it appears.
Size no bigger than 1200 * 900 px.
Post type:
Custom post type and taxonomy are not allowed.
Required Hooks and Navigation:
wp_head(); immediately before </head> tag.
body_class(); inside the <body> tag Ex: <body <?php body_class(); ?> >
$content_width(); Using this theme feature, WordPress can scale oEmbed code to a specific size (width) in the front-end, and insert large images without breaking the main content area.
Example:
if ( ! isset( $content_width ) ){
$content_width = 604;
}
post_class();
wp_footer(); Immediately before </body> tag.
Standard template file required to be called using the correct template tag.
php via comments_template();
php via get_header();
php via get_footer();
php via get_sidebar();
php via get_search_from();
Custom template files, required to call using the correct tag.
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.
Here are other several functions to for getting 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 our theme options and related page.
require( get_template_directory().’/inc/theme-options.php’ )
Style and Scripts:
Never Hard coded style and scripts.
Theme are required to used core bundle scripts, if using such scripts.
Theme must not use TimThumb.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment