This document is a WordPress Phase 1 Submission Requirements Q&A.
WordPress itself generates lots of invalid HTML. With this in mind, how can we produce W3C compliant themes?
We’re aware of this limitation and will only implement this rule for HTML content output by the theme. Browser prefixes and any other cutting edge code can and will be added to the exemption list.
How and when am I allowed to market my themes as HTML5 compliant?
In addition to the HTML5 DOCTYPE, themes will need to make use of the various semantic structural elements that HTML5 ships with. For more information, check out this flow chart.
Am I locked into the TGM Plugin Activation class or am I allowed to use my own?
While our preference is for TGM Plugin Activation for the sake of consistency, and it’s a robust existing class, you’re definitely allowed to use the library of your choice for managing dependencies. Please note that custom written solutions might entail a slightly longer review process to make sure everything is up to scratch.
Will a theme be rejected for its choice of plugins that it depends on?
Plugins that the theme makes use of will be vetted. If it’s a well known plugin, say GravityForms, we can assume there’s no funny business going on and give it a pass. If it’s author written, they’ll be quickly checked to make sure nothing malicious is inside.
Basically, a theme’s dependencies will be checked, whether packaged with the theme or references elsewhere.
Is it possible through TGM Plugin Activation, or an alternative, to automatically install and activate the plugins on theme activation with the choice of user’s being able to disable them from the plugin’s option? Is that allowed or possible?
They won’t automatically install, but a banner will appear saying they are required by the theme for functionality, with a link to install them (either from included package, or the WP.org repository, presently).
With custom solutions, authors aren’t allowed to pre-activate plugins. Instead they should simply prompt the users, similar to what WooCommerce does.
Am I allowed to deregister the local version of jQuery, and load the same version via CDN?
No, a theme needs to make use of the version of jQuery that the current version of WordPress ships with. Swapping out the default version causes lots of reliability issues with third party code, especially plugins.
Submission Requirements states: “wp_enqueue_style() must be used to enqueue all stylesheets” For example: with Google Web Font Loader you can use wp_enqueue_script to get this script which then loads CSS with fonts asynchronously with no server side scripting. So, in this way CSS styles are loaded without wp_enueue_style. Is this allowed or prohibited?
I’m already using TGM Plugin Activation, however it does throw up a huge amount of RECOMMENDED errors, will these be ignored?
Errors thrown by TGM Plugin Activation will be ignored.
Errors thrown by any other open source or custom written alternative will be evaluated on a case by case basis.
Suppose I extract my custom code into plugins, does it have to be compatible with all third party themes?
A plugin shouldn’t break anything even if the theme doesn’t support it. Sure, it might not look so hot on a theme that doesn’t support it, but that is the case with most plugins.
When developing a plugin, it is the responsibility of themes to implement support, not the responsibility of the plugin developer to try and support all themes (think, WooCommerce).
You say that modification of wpautop is not allowed. Do you mean it’s not allowed at all under any condition, or do you mean it can’t be modified globally? What if I want to modify it for only a few shortcodes, but not on a global basis?
If you can find an absolutely safe way to do it on a few shortcodes only, then please leave a note during the submission and the review team will make exemptions on a case by case basis.
Can we use inline CSS styles in our code, strictly when necessary?
Can I use the reCAPTCHA library in a theme which uses base64_encode, fwrite, fsockopen and fclose?
Yes. Edge cases like these will be left up to reviewer discretion.
Do all the PHP coding standards outlined in the WordPress Coding Standards need to be followed?
At the moment, we're not requiring that the entire set of PHP coding rules, as outlined for WordPress, be followed. We're specifying a couple of them that we do require in order to improve legibility of code. If it would be easier for you to simply follow them wholesale though, then by all means, please do!
Your ThemeForest-Check plugin doesn't suppress the cURL warning message in Theme-Check. Is that intended?
Yes, that is intended. Instead of using cURL, you should use WordPress' wp_remote_request() function. cURL should not be loaded in a theme. Ideally, not in a plugin either, but these requirements are focussing on themes.