Skip to content

Instantly share code, notes, and snippets.

@Japh
Last active May 14, 2017 11:41
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Japh/6016724 to your computer and use it in GitHub Desktop.
Save Japh/6016724 to your computer and use it in GitHub Desktop.
Q & A on WordPress Theme Submission Requirements

ThemeForest's WordPress Theme Submission Requirements Q&A

Collated and paraphrased from responses on the official ThemeForest discussion thread.

Q1: Asked by peex and pjtops:

Do we really have to follow the PHP coding standards outlined in the WordPress Coding Standards?

Answered by Japh:

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!

Q2: Asked by Deveraux and Theme-Desert:

Your ThemeForest-Check plugin doesn't suppress the cURL warning message in Theme-Check. Is that intended?

Answered by Japh:

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.

Q3: Asked by dSKY and JoNa:

Am I allowed to deregister the local version of jQuery, and load the same version via CDN?

Answered by Japh and Siddharth:

There's really no need to do this, and it creates an additional unnecessary dependency. Definitely make sure the default version isn't swapped by default.

Q4: Asked by ricci_gdf:

Can I submit a theme for review, without all the new requirements, before September 9th and have it approved?

Answered by Siddharth:

Yes, you can. But since the requirements in Phase 1 are pretty easy to comply with, I recommend giving it a look before submission.

Q5: Asked by BonfireThemes:

What if a theme only needs to echo the thumbnail URL, and not the complete <img src="url" />? For exmaple, if <?php $image_id = get_post_thumbnail_id(); $image_url = wp_get_attachment_image_src($image_id,’large’, true); echo $image_url[0]; ?> is used, Theme-Check will say the_post_thumbnail() is not used.

Answered by Japh:

If this is a common enough need, I can see about adding it into ThemeForest-Check for you. Otherwise, it could be considered an exception if you point it out to the reviewer, at their discretion.

Q1: Asked by Jaynesh and purethemes:

Does OptionTree, that has "theme mode", have to be included via the TGM Plugin Activation class?

Answered by Japh:

There is no problem with using an options framework such as OptionTree. It is even listed as allowable under Phase 2 in the requirements article.

Q2: Asked by purethemes:

Will we now be selling simple themes with bunch of plugins? What about very niche themes, like for hotels with booking systems, restaurant themes, directory themes etc.

Answered by Japh:

Not at all.

As an example, there is a real estate plugin in the WordPress.org directory: Some themes will be made to support this and it will work nicely, others will not. This is actually fairly common.

In your example, you could create a plugin that provides all the restaurant functionality for your restaurant theme. If you make a second restaurant theme, you'll likely use the same plugin. If another theme is used with the plugin, it probably won’t work, as that theme wasn’t created to work with that plugin.

Q3: Asked by activetofocus:

If I create a custom post type, then can I add options for it with the number of posts show?

Answered by Japh:

Correct, providing it's not done via a global setting that will affect, for example, plugins that need to show a list of posts.

Q4: Asked by ThemesIndep and Jaynesh:

I'm also using Advanced Custom Fields in 'Lite Mode' as my Options framework. Is this plugin classed as an Options Framework?

Answered by Japh:

Pending feedback from the review team, see the answer to Q1 above.

Q5: Asked by meks:

What if we want to use a different portfolio custom post type for different themes? For example, one portfolio custom post type will have 5 specific fields, and for some other theme we would like to show only 3 of them. What should we do in that case?

Answered by Japh:

It would be quite possible for you to create a plugin, and simply have the theme switch on / off various options, similar to the add_theme_support() function in WordPress itself.

Q6: Asked by Cubell:

Are you saying that we should create a SINGLE plugin that has everything thrown in?

Answered by Japh:

You could put related functionality into a themed plugin. You may also decide to create a more generic plugin to use as a framework for your range of themes.

Q7: Asked by ThemesDepot, Deveraux, and bitfade:

Something that is not clear to me is: must metaboxes be in plugins?

Answered by Japh:

Theme-specific metaboxes, relating to layout and content etc., this would be fine to be in the theme.

Q8: Asked by Softwebmedia and nagaemas:

Why are Page Builders to be allowed in themes?

Answered by Japh:

This is an interesting one, and I'd like to discuss it further, perhaps in a separate thread as I imagine it’s a contentious issue that a lot of you will have thoughts on.

Some of you seem happy with this being in a plugin, and some are very much not happy with that idea.

Q9: Asked by Deveraux:

I'm concerned moving all this functionality into having multiple plugins wil cause performance problems.

Answered by Japh:

There is no additional performance hit for moving functionality from a theme, into plugins.

Q10: Asked by PeterOravec:

What happens when existing items fail to comply with all these requirements? Will they be removed from ThemeForest?

Answered by Japh:

We have no timeline in place for when existing themes will need to comply with these requirements, other than it will be a minimum of 6 months or more.

If and when the time comes, we will work together with authors gradually, as stated in the Notes post.

Q11: Asked by OriginalEXE:

Are you working on an API for CodeCanyon, similar to what you have for ThemeForest, to ease plugin auto updating?

Answered by Siddharth:

CodeCanyon WordPress items will soon have the auto update features similar to ThemeForest WordPress themes. I don't have a concrete timeline on this yet.

Q12: Asked by kpodemski:

Licensing and integration of 3rd-party plugins, like Layer Slider, must be well explained because it is a standard occurrence for ThemeForest.

Answered by Japh:

Thank you, we've noted this feedback and will be raising it internally to get further clarification for you all.

How do we determine what must be in a plugin? Custom post types, metaboxes, template pages and single pages?

Answered by Japh:

The separation should be: is this visual (theme), or functional (plugin)? However, there will be exceptions to both cases of course, because nothing is black and white.

I'll see if we can get some sort of list of examples here so that it's clarified better for you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment