Theme Check Plugin

Price: FREE
Sold By: WordPressLLC.comWordPressLLC.com

Contributors: Otto42, pross
Author URI: http://ottopress.com/
Plugin URL: http://ottopress.com/wordpress-plugins/theme-check/
Requires at Least: 3.7
Tested Up To: 5.2
Tags: template, theme, check, checker, tool, wordpress, wordpress.org, upload, uploader, test, guideline, review
Stable tag: 20190801.1

A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!

== Description ==

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](https://make.wordpress.org/themes/handbook/review/) standards. With it, you can run all the same automated testing tools on your theme that WordPress.org 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.

== Frequently Asked Questions ==

= What's with the version numbers? =

The version number is the date of the revision of the [guidelines](https://make.wordpress.org/themes/handbook/review/) 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](https://make.wordpress.org/themes/handbook/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 [WordPress.org theme repository](http://wordpress.org/themes/) 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 WordPress.org 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](https://make.wordpress.org/themes).

== Other Notes ==

= 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.
Examples:
`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]]
[[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.

== Changelog ==
= 20190801.1 =
* 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.

= 20190208.1 =
* Add new styles for the block editor. See https://meta.trac.wordpress.org/ticket/3921

= 20160523.1 =
* 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.

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

= 20140929.1 =
* 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() <br/>* CDN: Checks for use of common CDNs (recommended only) <br/>* 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. <br/></p><p>= 20131213.1 = <br/>* Corrected errors not being displayed by the plugin and it incorrectly giving a "pass" result to everything. <br/></p><p>= 20131212.1 = <br/>* Updated for 3.8 <br/>* Most files have changed for better I18N support, so the language files were removed temporarily until translation can be redone. <br/></p><p>= 20121211.1 = <br/>* Updated for 3.5 <br/>* Remove Paypal button. <br/></p><p>= 20110805.1 = <br/>* TimThumb checks removed. <br/>* Proper i18n loading. Fixes http://bit.ly/ouD5Ke. <br/>* Screenshot now previewed in results, with filesize and dimensions. <br/></p><p>= 20110602.2 = <br/>* New file list functions hidden folders now detectable. <br/>* Better fopen checks. <br/>* TimThumb version bump <br/></p><p>= 20110602.1 = <br/>* DOS/UNIX line ending style checks are now a requirement for proper theme uploading. <br/>* Timthumb version bump <br/>* Several fixes reported by GaryJ <br/>* 3.2 deprecated functions added <br/></p><p>= 20110412.1 = <br/>* Fix regex's <br/>* Added check for latest footer injection hack. <br/>* Fix tags check to use new content function correctly <br/>* Sync of all changes made for wporg uploader theme-check. <br/>* Updated checks post 3.1. added screenshot check to svn. <br/>* Fix links check to not return a false failure in some cases <br/>* rm one of the checks that causes problems on wporg uploader (and which is also unnecessary) <br/>* Move unneeded functions out of checkbase into main.php. <br/>* Minor formatting changes only (spacing and such) <br/>* Add check for wp_link_pages() + fix eval() check <br/></p><p>= 20110219.2 = <br/>* Merged new UI props Gua Bob [1](http://guabob.com/) <br/>* Last tested theme is always pre-selected in the themes list. <br/>* Fixed php error in admin_menu.php <br/></p><p>= 20110219.1 = <br/>* See [commit log](https://github.com/Pross/theme-check/commits/) for changes. <br/></p><p>= 20110201.2 = <br/>* UI bug fixes [forum post](http://bit.ly/ff7amN) props Mamaduka. <br/>* Textdomain checks for twentyten and no domain. <br/>* Fix div not closing props Mamaduka. <br/></p><p>= 20110201.1 = <br/>* i18n working <br/>* sr_RS de_DE ro_RO langs props Daniel Tara and Emil Uzelac. <br/>* Child theme support added, checks made against parent AND child at runtime. <br/>* Trac formatting button added for reviewers. <br/></p><p>= 20101228.3 = <br/>* Last revision for 3.1 (hopefully) <br/>* Chips suggestion of checking for inclusion of searchform.php ( not <br/>perfect yet, need more examples to look for ). <br/>* add_theme_page is required, all others flagged and displayed with line <br/>numbers. <br/>* <?= detected properly, short tags outputted with line umbers. <br/>* Mostly internationalized, needs translations now. <br/>* Bug fixes. <br/></p><p>= 20101228.2 = <br/>* Added menu checking. <br/>* ThemeURI AuthourURI added to results. <br/>* Lots of small fixes. <br/>* Started translation. <br/></p><p>= 20101228.1 = <br/>* Fix embed_defaults filter check and stylesheet file data check. <br/></p><p>= 20101226.1 = <br/>* Whole system redesign to allow easier synching with <a target="blank" href="/rl/WP15791046025e1f395a264dd2.15439160">WordPress.org</a> uploader. Many other additions/subtractions/changes as well. <br/>* WordPress 3.1 guidelines added, to help theme authors ensure compatibility for upcoming release. <br/></p><p>= 20101110.7 = <br/>* Re-added malware.php checks for fopen and file_get_contents (INFO) <br/>* fixed a couple of undefined index errors. <br/></p><p>= 20101110.4_r2 = <br/>* Fixed Warning: Wrong parameter count for stristr() <br/></p><p>= 20101110.4_r1 = <br/>* Added `echo` to suggested.php <br/></p><p>= 20101110.4 = <br/>* Fixed deprecated function call to get_plugins() <br/></p><p>= 20101110.3 = <br/>* Fixed undefined index. <br/></p><p>= 20101110.2 = <br/>* Missing `<` in main.php <br/>* Added conditional checks for licence.txt OR Licence tags in style.css <br/>* UI improvements. <br/></p><p>= 20101110.1 = <br/>* Date fix! <br/></p><p>= 10112010_r1 = <br/>* Fixed hardcoded links check. Added FAQ <br/></p><p>= 10112010 = <br/>* First release. <br/></p> </div> </div> <div class="col-12 col-lg-4"> <div class="w-100 my-1" style="border: 1px #eee solid; border-radius: 4px; padding: 16px 16px;"> <h5 class="text-dark">Theme Check Plugin</h5> <h6 class="mb-1">Price: <strong class="text-price float-right font-weight-bold">FREE</strong></h6> <p class="text-secondary">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](https://make.</p> <button class="add-cart-btn" onclick="addToCart('P15831744045e5d53041b04a4.49164150',1, null, '')">Add to Cart</button> <a class="cart-btn mt-2" href="/cart">View Cart</a> <div class="w-100 my-3"><div id="requestFlashContainer"></div></div> </div> <div class="row" style="padding: 0; margin: 20px 0;"> <h5 style="color:#333;">More Products</h5> <div style="width: 100%; display: block;float: left; margin-bottom:10px;"> <a href="/p/404-redirection-plugin"> <div style="width: 30%; float: left; background: #eee; height: 75px"> <div class="bgimg" data-bgimg="?size=thumbnail" style="width: 100%; height: 75px"></div> </div> <div style="width: 70%; float: right; padding-left: 8px"> <h5 style="color:#444; font-size: 90%;margin:0">404 Redirection Plugin</h5> <p style="color:#666; font-size: 80%;margin:0"><strong>FREE</strong></p> <p style="color:#7777; font-size: 80%"> This simple plugin permanently redirects all 404's to the main blog URL.</p> </div> </a> </div> <div style="width: 100%; display: block;float: left; margin-bottom:10px;"> <a href="/p/contact-form-7-image-captcha-plugin"> <div style="width: 30%; float: left; background: #eee; height: 75px"> <div class="bgimg" data-bgimg="/f/F15833172065e5f80d642f4a7.55378765?size=thumbnail" style="width: 100%; height: 75px"></div> </div> <div style="width: 70%; float: right; padding-left: 8px"> <h5 style="color:#444; font-size: 90%;margin:0">Contact Form 7 Image Captcha Plugin</h5> <p style="color:#666; font-size: 80%;margin:0"><strong>FREE</strong></p> <p style="color:#7777; font-size: 80%">Add an SVG image captcha and honeypot to your contact form 7 form.</p> </div> </a> </div> <div style="width: 100%; display: block;float: left; margin-bottom:10px;"> <a href="/p/remove-yoast-seo-comments-plugin"> <div style="width: 30%; float: left; background: #eee; height: 75px"> <div class="bgimg" data-bgimg="/f/F15833169025e5f7fa6d00703.76820812?size=thumbnail" style="width: 100%; height: 75px"></div> </div> <div style="width: 70%; float: right; padding-left: 8px"> <h5 style="color:#444; font-size: 90%;margin:0">Remove Yoast SEO Comments Plugin</h5> <p style="color:#666; font-size: 80%;margin:0"><strong>FREE</strong></p> <p style="color:#7777; font-size: 80%"> A light-weight plugin which will remove the advertisement HTML comments co...</p> </div> </a> </div> <div style="width: 100%; display: block;float: left; margin-bottom:10px;"> <a href="/p/head--footer-code-plugin"> <div style="width: 30%; float: left; background: #eee; height: 75px"> <div class="bgimg" data-bgimg="/f/F15833166065e5f7e7e863548.21506769?size=thumbnail" style="width: 100%; height: 75px"></div> </div> <div style="width: 70%; float: right; padding-left: 8px"> <h5 style="color:#444; font-size: 90%;margin:0">Head Footer Code Plugin</h5> <p style="color:#666; font-size: 80%;margin:0"><strong>FREE</strong></p> <p style="color:#7777; font-size: 80%">Let we say that you have been told to add some custom code (HTML, JavaScrip...</p> </div> </a> </div> <div style="width: 100%; display: block;float: left; margin-bottom:10px;"> <a href="/p/sidebar-login-plugin"> <div style="width: 30%; float: left; background: #eee; height: 75px"> <div class="bgimg" data-bgimg="/f/F15833163045e5f7d5053ecb4.93494946?size=thumbnail" style="width: 100%; height: 75px"></div> </div> <div style="width: 70%; float: right; padding-left: 8px"> <h5 style="color:#444; font-size: 90%;margin:0">Sidebar Login Plugin</h5> <p style="color:#666; font-size: 80%;margin:0"><strong>FREE</strong></p> <p style="color:#7777; font-size: 80%">Sidebar-Login adds a useful login widget which you can use to login from in...</p> </div> </a> </div> </div> <div class="row" style="padding: 0; margin:0;"> <a href="/products" class="btn btn-block btn-light">Browse All Products</a> </div> <div class="square-container mt-4"><div class="square" data-addisplay="/1/1/P15831744045e5d53041b04a4.49164150"></div></div> <div class="row" style="padding: 0; margin: 10px 0;"> <h5 style="color:#333;">More Articles</h5> <div style="width: 100%; display: block;float: left; margin-bottom:10px;"> <a href="/wordpress-footer-checklist"> <div style="width: 30%; float: left; background: #eee; height: 75px"> <div class="bgimg" data-bgimg="/f/F15936339125efcec7868b020.81733016?size=thumbnail" style="width: 100%; height: 75px"></div> </div> <div style="width: 70%; float: right; padding-left: 8px"> <h5 style="color:#444; font-size: 90%">WordPress Footer Checklist</h5> <p style="color:#7777; font-size: 80%">A footer is VERY important part of your WordPress website. Learn how to imp...</p> </div> </a> </div> <div style="width: 100%; display: block;float: left; margin-bottom:10px;"> <a href="/wordpress-marketing-stratgey"> <div style="width: 30%; float: left; background: #eee; height: 75px"> <div class="bgimg" data-bgimg="/f/F15929613545ef2a94a940e59.32788167?size=thumbnail" style="width: 100%; height: 75px"></div> </div> <div style="width: 70%; float: right; padding-left: 8px"> <h5 style="color:#444; font-size: 90%">Marketing Strategy for WordPress Websites</h5> <p style="color:#7777; font-size: 80%">The right marketing strategies can fuel your growth and profit. Learn how t...</p> </div> </a> </div> <div style="width: 100%; display: block;float: left; margin-bottom:10px;"> <a href="/how-to-create-tabs-html-jquery"> <div style="width: 30%; float: left; background: #eee; height: 75px"> <div class="bgimg" data-bgimg="/f/F15841322465e6bf096d22058.98069663?size=thumbnail" style="width: 100%; height: 75px"></div> </div> <div style="width: 70%; float: right; padding-left: 8px"> <h5 style="color:#444; font-size: 90%">How to create tabs with HTML and jQuery</h5> <p style="color:#7777; font-size: 80%">How to create tabs with HTML and jQuery. Need a tabbed view for your websit...</p> </div> </a> </div> <div style="width: 100%; display: block;float: left; margin-bottom:10px;"> <a href="/crm-tags"> <div style="width: 30%; float: left; background: #eee; height: 75px"> <div class="bgimg" data-bgimg="/f/F15853261505e7e2846cc1f01.56341813?size=thumbnail" style="width: 100%; height: 75px"></div> </div> <div style="width: 70%; float: right; padding-left: 8px"> <h5 style="color:#444; font-size: 90%"><i class="fa fa-wrench mr-2"></i>CRM Tags</h5> <p style="color:#7777; font-size: 80%">Manage all of the customer tags for your business.</p> </div> </a> </div> <div style="width: 100%; display: block;float: left; margin-bottom:10px;"> <a href="/projects"> <div style="width: 30%; float: left; background: #eee; height: 75px"> <div class="bgimg" data-bgimg="/f/F15844105345e702fa6a534a0.51246284?size=thumbnail" style="width: 100%; height: 75px"></div> </div> <div style="width: 70%; float: right; padding-left: 8px"> <h5 style="color:#444; font-size: 90%"><i class="fa fa-wrench mr-2"></i>Projects</h5> <p style="color:#7777; font-size: 80%">Manage and view tasks for a project.</p> </div> </a> </div> </div> <div class="row" style="padding: 0; margin:0;"> <a href="/browse" class="btn btn-block btn-light">Browse Articles</a> </div> </div> </div> <footer> <div class="row" style="margin:0;padding: 0"> <div class="col-12 col-sm-2 footer-center-text"> <a href="/">© 2020 WordPressLLC.com</a> </div> <div class="col-12 col-sm-2 footer-center-text" style="text-align: center"> <a href="/browse">Browse Content</a> </div> <div class="col-12 col-sm-2 footer-center-text" style="text-align: center"> <a href="/contact">Contact</a> </div> <div class="col-12 col-sm-2 footer-center-text" style="text-align: center"> </div> <div class="col-12 col-sm-2 footer-center-text" style="text-align: center"> <a href="http://windpointgroup.com/privacy-policy" target="_blank">Privacy Policy</a> </div> <div class="col-12 col-sm-2 footer-center-text"> <span class="footer-cc-text"><a href="http://windpointgroup.com" target="_blank">© 2014-2020 WPG LLC</a></span> </div> </div> </footer> <!-- scripts --> <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> <script src="https://wordpressllc.com/js/img_loader.js"></script> <script src="https://wordpressllc.com/js/ad_server.js"></script> <script src="https://wordpressllc.com/js/image_carousel.js"></script> <script src="https://wordpressllc.com/js/request_flasher.js"></script> <script src="https://wordpressllc.com/js/cart.js"></script> <script> jQuery(document).ready(function(){ var imageCarousel = new ImageCarousel('previewCarousel', JSON.parse('[{"link_id":3500,"image_url":"\/f\/F15831744045e5d5304121951.10757129","created_at":"2020-03-02 18:40:04"},{"link_id":3495,"image_url":"\/f\/F15831744045e5d5304121951.10757129","created_at":"2020-03-02 18:40:04"}]')); }); </script> </body> </html>