Skip to content

Instantly share code, notes, and snippets.

@tenman

tenman/html Secret

Created January 6, 2015 05:18
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 tenman/f8ba26cb71e2034c2e75 to your computer and use it in GitHub Desktop.
Save tenman/f8ba26cb71e2034c2e75 to your computer and use it in GitHub Desktop.
review checklist strings from https://wordpress.org/plugins/theme-checklist/
<dl>
<dt>
<span class="title">Title:</span>
No Plugin Territory Functionality
</dt>
<dd>
excerpt: Themes must not include any functionality that would be considered plugin territory. These include, but is not limited to custom post types, custom taxonomies, SEO options, analytics scripts fields.
</dd>
<dd>
<span class="title">category:</span>
Plugin Territory
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/no-plugin-territory-functionality/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
A Clean HTML Head
</dt>
<dd>
<span class="title">excerpt:</span>
There are a lot of requirements focused around the HTML head, so it's important to make sure yours is compliant.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/a-clean-html-head/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Properly Enqueue Scripts and Styles
</dt>
<dd>
<span class="title">excerpt:</span>
All Javascript and CSS stylesheets must be enqueued using the built in WordPress functions.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/properly-enqueue-scripts-and-styles/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Using Bundled Scripts and Styles
</dt>
<dd>
<span class="title">excerpt:</span>
Themes must always used bundled scripts and styles for common libraries like jQuery instead of using their own.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/using-bundled-scripts-and-styles/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Default Theme Settings
</dt>
<dd>
<span class="title">excerpt:</span>
Themes must use sane defaults.
</dd>
<dd>
<span class="title">category:</span>
Theme Settings
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/default-theme-settings/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
No PHP Error Messages
</dt>
<dd>
<span class="title">excerpt:</span>
Themes must not generate any error messages or warnings when WordPress debug mode is enabled.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/no-php-error-messages/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Theme Check Plugin
</dt>
<dd>
<span class="title">excerpt:</span>
Themes must pass all required checks in the theme check plugin.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/theme-check-plugin/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Namespace All Functions, Classes, Constants and Global Variables
</dt>
<dd>
<span class="title">excerpt:</span>
Themes must properly namespace everything in the public namespace.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/namespace-all-functions-classes-constants-and-global-variables/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Theme Passes Current Unit Test
</dt>
<dd>
<span class="title">excerpt:</span>
A good theme should pass all the requirements of the unit test.
</dd>
<dd>
<span class="title">category:</span>
Visual Tests
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/theme-passes-current-unit-test/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Theme Code Licensing
</dt>
<dd>
<span class="title">excerpt:</span>
New theme developers often slip up on licensing so it's something you need to pay special attention to.
</dd>
<dd>
<span class="title">category:</span>
Licensing
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/theme-code-licensing/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Post and Body Class Functions Properly Used
</dt>
<dd>
<span class="title">excerpt:</span>
Themes need to use the proper method for adding post and body classes
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/post-and-body-class-functions-properly-used/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Don't Support Outdated Versions of WordPress
</dt>
<dd>
<span class="title">excerpt:</span>
Themes must not support outdated versions of WordPress. Outdated is considered any version beyond the current and 2 versions back.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/dont-support-outdated-versions-of-wordpress/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Theme Settings and Admin Pages
</dt>
<dd>
<span class="title">excerpt:</span>
Themes must properly implement theme settings pages.
</dd>
<dd>
<span class="title">category:</span>
Theme Settings
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/theme-settings-and-admin-pages/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Everything Must Be Saved Into a Single Array Using a Proper Prefix
</dt>
<dd>
excerpt: Themes can't save their settings into multiple database entries. These should be saved into a single array and the option key must be prefixed with the theme slug.
</dd>
<dd>
<span class="title">category:</span>
Theme Settings
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/settings-must-be-saved-into-a-single-array/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Used Checked and Selected Functions
</dt>
<dd>
<span class="title">excerpt:</span>
Themes must use checked() and selected() where necessary.
</dd>
<dd>
<span class="title">category:</span>
Theme Settings
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/used-checked-and-selected-functions/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Escape User Inputted Values
</dt>
<dd>
<span class="title">excerpt:</span>
When ever a user inputted value is echoed, it must be escaped by a data validation function.
</dd>
<dd>
<span class="title">category:</span>
Security
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/escape-user-inputted-values/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Image/Photo Licensing
</dt>
<dd>
<span class="title">excerpt:</span>
The license of each photo bundled with the theme should be GPL compatible and verified.
</dd>
<dd>
<span class="title">category:</span>
Licensing
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/imagephoto-licensing/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
English Front Facing Text
</dt>
<dd>
<span class="title">excerpt:</span>
All text that a theme can see, either in their admin or the front end of their site must default to being English.
</dd>
<dd>
<span class="title">category:</span>
Language and Translation
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/english-front-facing-text/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Theme Text Translation
</dt>
<dd>
<span class="title">excerpt:</span>
If used, themes must use translation functions properly.
</dd>
<dd>
<span class="title">category:</span>
Language and Translation
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/theme-text-translation/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
No External Resources or Requests
</dt>
<dd>
<span class="title">excerpt:</span>
Themes can not load external resources or make external requests without informed user consent.
</dd>
<dd>
<span class="title">category:</span>
Security
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/no-external-resources-or-requests/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Theme Doesn't Lock Out Core Functionality
</dt>
<dd>
<span class="title">excerpt:</span>
Themes must not lock out core features of WordPress. Up-sell themes can't advertise core features as part of the paid version.
</dd>
<dd>
<span class="title">category:</span>
Up-Sell Themes
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/theme-doesnt-lock-out-core-functionality/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Commercial Versions of The Theme Are GPL
</dt>
<dd>
excerpt: All themes on the theme author's site must be GPL compatible. This includes commercial versions of the submitted theme and all other themes listed on the author's site.
</dd>
<dd>
<span class="title">category:</span>
Up-Sell Themes
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/commercial-versions-of-the-theme-are-gpl/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Valid Credit Links, Author URI and Theme URI
</dt>
<dd>
excerpt: Themes must have valid author URI and theme URI. Both of these must be directly related to the theme author. The theme credit link can only be one of these 2 URIs.
</dd>
<dd>
<span class="title">category:</span>
General
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/valid-credit-links-author-uri-and-theme-uri/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Theme Properly Handles Comments
</dt>
<dd>
<span class="title">excerpt:</span>
A theme must properly handle comments using the correct template tags and by supporting the comment-reply script.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/theme-properly-handles-comments/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Properly Include Template Parts
</dt>
<dd>
excerpt: Themes must use the dedicated WordPress functions to include template parts, or use get_template_part/locate_template for custom template parts.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/properly-include-template-parts/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Proper Archive Navigation
</dt>
<dd>
excerpt: Themes must support core WordPress post archive pagination. They can include support for other pagination plugins, but must always fall back to the core functions.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/proper-archive-navigation/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Theme Has a Properly Formed Footer
</dt>
<dd>
<span class="title">excerpt:</span>
The only real requirement here is that the theme has a wp_footer call just before the closing body tag.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/theme-has-a-properly-formed-footer/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Handles Page Pagination
</dt>
<dd>
<span class="title">excerpt:</span>
Themes must display page pagination.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/handles-page-pagination/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Include/Require Additional Include Files Properly
</dt>
<dd>
excerpt: Themes must include additional include files in their functions.php using get_template_directory or get_stylesheet_directory if the file is designed to be overwritten by a child theme.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/includerequire-additional-include-files-properly/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Use The Proper Functions To Retreive URLs
</dt>
<dd>
<span class="title">excerpt:</span>
Themes must use the proper *_url or *_uri function to get URLs within WordPress - get_bloginfo must not be used to get URLs.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/use-the-proper-functions-to-retreive-urls/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
No Admin Notices Outside Theme's Admin Pages
</dt>
<dd>
<span class="title">excerpt:</span>
Themes are only allowed displaying admin notices on admin pages that they specifically create.
</dd>
<dd>
<span class="title">category:</span>
Theme Settings
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/no-admin-notices-outside-themes-admin-pages/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Correct Spelling of WordPress
</dt>
<dd>
<span class="title">excerpt:</span>
</dd>
<dd>
<span class="title">category:</span>
General
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/correct-spelling-of-wordpress/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Proper Theme Screenshot
</dt>
<dd>
<span class="title">excerpt:</span>
</dd>
<dd>
<span class="title">category:</span>
General
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/proper-theme-screenshot/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
$content_width Set Inside a Theme Setup Function
</dt>
<dd>
<span class="title">excerpt:</span>
The value of $content_width must be set globally, to the pixel width of actual post content and set in a theme setup function.
</dd>
<dd>
<span class="title">category:</span>
Code Quality
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/content_width-set-inside-a-theme-setup-function/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
Sane Defaults
</dt>
<dd>
excerpt: Themes must work right out the box, without any user configuration and must not save settings to the database before the user interacts with the settings page.
</dd>
<dd>
<span class="title">category:</span>
Theme Settings
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/sane-defaults/
</dd>
</dl>
<dl>
<dt>
<span class="title">Title:</span>
No Admin Notices or Redirects on Theme Activation
</dt>
<dd>
<span class="title">excerpt:</span>
Themes must not perform redirects or display admin notices after they're activated.
</dd>
<dd>
<span class="title">category:</span>
Theme Settings
</dd>
<dd>
<span class="title">url:</span>
http://themechecklist.org/no-admin-notices-or-redirects-on-theme-activation/
</dd>
</dl>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment