Theme Check


The theme check plugin is an easy way to test your theme and make sure it’s up to spec with the latest theme review standards. With it, you can run all the same automated testing tools on your theme that uses for theme submissions.

The tests are run through a simple admin menu and all results are displayed at once. This is very handy for theme developers, or anybody looking to make sure that their theme supports the latest WordPress theme standards and practices.

How to enable trac formatting

The Theme Review team use this plugin while reviewing themes and copy/paste the output into trac tickets, the trac system has its own markup language.
To enable trac formatting in Theme-Check you need to define a couple of variables in wp-config.php:
TC_PRE and TC_POST are used as a ticket header and footer.
define( ‘TC_PRE’, ‘Theme Review:[[br]]
– Themes should be reviewed using “define(\’WP_DEBUG\’, true);” in wp-config.php[[br]]
– Themes should be reviewed using the test data from the Theme Checklists (TC)
‘ );

define( 'TC_POST', 'Feel free to make use of the contact details below if you have any questions,
comments, or feedback:[[br]]
* Leave a comment on this ticket[[br]]
* Send an email to the Theme Review email list[[br]]
* Use the #wordpress-themes IRC channel on Freenode.' );

If either of these two vars are defined a new trac tickbox will appear next to the Check it! button.


What’s with the version numbers?

The version number is the date of the revision of the guidelines used to create it.

Why does it flag something as bad?

It’s not flagging “bad” things, as such. The theme check is designed to be a non-perfect way to test for compliance with the Theme Review guidelines. Not all themes must adhere to these guidelines. The purpose of the checking tool is to ensure that themes uploaded to the central theme repository meet the latest standards of WordPress themes and will work on a wide variety of sites.

Many sites use customized themes, and that’s perfectly okay. But themes that are intended for use on many different kinds of sites by the public need to have a certain minimum level of capabilities, in order to ensure proper functioning in many different environments. The Theme Review guidelines are created with that goal in mind.

This theme checker is not perfect, and never will be. It is only a tool to help theme authors, or anybody else who wants to make their theme more capable. All themes submitted to are hand-reviewed by a team of experts. The automated theme checker is meant to be a useful tool only, not an absolute system of measurement.

This plugin does not decide the guidelines used. Any issues with particular theme review guidelines should be discussed on the Make Themes site.


June 6, 2019
One of the best plugins for theme developers. Really a very good job! Have you never thought to create a similar plugin to check plugins? Plugins developers would also need a so helpful tool.
January 18, 2019
This is a great plugin for everyone that really likes to develop a WordPress theme and make successfully tests for the basic WordPress standards. The errors separated in 'Required', 'Warning', 'Recommended' and 'info'. Also provide the basic information of this error and makes you understand where the problem is.
Read all 194 reviews

Contributors & Developers

“Theme Check” is open source software. The following people have contributed to this plugin.


“Theme Check” has been translated into 11 locales. Thank you to the translators for their contributions.

Translate “Theme Check” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Fix missing nonce and nonce check on admin page. props Steven Stern for reporting the issue to the plugins team. Though this is technically a CSRF, there is no vulnerability arising from it, as the only thing that could be done with the form is to scan a theme.


  • Add new styles for the block editor. See


  • Fix for theme-names with dashes in them
  • Comments stripping changes
  • Many changes by the theme review team and others. See Github for full change list.


  • Full sync with Github and all the changes that have happened there.
  • Release for 4.4 deprecated functions.


  • Added new checks and updates from Frank Klein at Automattic. Thanks Frank!
  • Updated deprecated function listings
  • Customizer check: All add_settings must use sanitization callbacks, for security
  • Plugin territory checks: Themes must not register post types or taxonomies or add shortcodes for post content
  • Widgets: Calls to register_sidebar must be called from the widgets_init action hook
  • Title: tags must exist and not have anything in them other than a call to wp_title()
  • CDN: Checks for use of common CDNs (recommended only)
  • Note: Changed plugin and author URIs due to old URIs being invalid. These may change again in the future, the URIs to my own site are temporarily only.


  • Corrected errors not being displayed by the plugin and it incorrectly giving a “pass” result to everything.


  • Updated for 3.8
  • Most files have changed for better I18N support, so the language files were removed temporarily until translation can be redone.


  • Updated for 3.5
  • Remove Paypal button.


  • TimThumb checks removed.
  • Proper i18n loading. Fixes
  • Screenshot now previewed in results, with filesize and dimensions.


  • New file list functions hidden folders now detectable.
  • Better fopen checks.
  • TimThumb version bump


  • DOS/UNIX line ending style checks are now a requirement for proper theme uploading.
  • Timthumb version bump
  • Several fixes reported by GaryJ
  • 3.2 deprecated functions added


  • Fix regex’s
  • Added check for latest footer injection hack.
  • Fix tags check to use new content function correctly
  • Sync of all changes made for wporg uploader theme-check.
  • Updated checks post 3.1. added screenshot check to svn.
  • Fix links check to not return a false failure in some cases
  • rm one of the checks that causes problems on wporg uploader (and which is also unnecessary)
  • Move unneeded functions out of checkbase into main.php.
  • Minor formatting changes only (spacing and such)
  • Add check for wp_link_pages() + fix eval() check


  • Merged new UI props Gua Bob 1
  • Last tested theme is always pre-selected in the themes list.
  • Fixed php error in admin_menu.php



  • UI bug fixes forum post props Mamaduka.
  • Textdomain checks for twentyten and no domain.
  • Fix div not closing props Mamaduka.


  • i18n working
  • sr_RS de_DE ro_RO langs props Daniel Tara and Emil Uzelac.
  • Child theme support added, checks made against parent AND child at runtime.
  • Trac formatting button added for reviewers.


  • Last revision for 3.1 (hopefully)
  • Chips suggestion of checking for inclusion of searchform.php ( not
    perfect yet, need more examples to look for ).
  • add_theme_page is required, all others flagged and displayed with line
  • <?= detected properly, short tags outputted with line umbers.
  • Mostly internationalized, needs translations now.
  • Bug fixes.


  • Added menu checking.
  • ThemeURI AuthourURI added to results.
  • Lots of small fixes.
  • Started translation.


  • Fix embed_defaults filter check and stylesheet file data check.


  • Whole system redesign to allow easier synching with uploader. Many other additions/subtractions/changes as well.
  • WordPress 3.1 guidelines added, to help theme authors ensure compatibility for upcoming release.


  • Re-added malware.php checks for fopen and file_get_contents (INFO)
  • fixed a couple of undefined index errors.


  • Fixed Warning: Wrong parameter count for stristr()


  • Added echo to suggested.php


  • Fixed deprecated function call to get_plugins()


  • Fixed undefined index.


  • Missing < in main.php
  • Added conditional checks for licence.txt OR Licence tags in style.css
  • UI improvements.


  • Date fix!


  • Fixed hardcoded links check. Added FAQ


  • First release.