Summary: This article is Part 1 of the requirements for WordPress Theme authors. WordPress is a large topic, so you will also need Parts 2 - 6 of the requirements below;
- WordPress Requirements Part 2 - Features
- WordPress Requirements Part 3 - Theme Plugins
- WordPress Requirements Part 4 - Coding
- WordPress Requirements Part 5 - Theme Security
- WordPress Requirements Part 6 - Gutenberg
If you are a Code author looking for more information on Wordpress Plugins to upload to a code category, please refer to the Plugin Requirements.
Please use the following tools to identify and fix any issues before submitting your theme.
Envato Theme Check Plugin
Themes are required to fix all issues that result in a REQUIRED notice in the Envato Theme Check plugin. There are no longer any allowable exceptions.
Strongly Recommended! It is recommended that WARNING, RECOMMENDED and INFO notices are resolved if possible. Some may be the result of an issue that is cause for rejection (Reviewers make this decision).
The Envato Theme Check plugin is a fork of the original Theme Check plugin, which has been modified to more closely match these requirements.
WordPress Unit Test Data
Themes will be tested against the WordPress Unit Test data to ensure that all necessary components are styled properly.
- Posts must be displayed correctly with no apparent visual problems.
- All expected components, such as title, body, comments, comment form, post meta, etc., must be rendered correctly.
- Posts must be displayed in the correct order.
- Page navigation must work correctly.
- The search results page must work properly, with results displayed appropriately. If there are no results the user must be informed of this.
- Sticky posts must be styled and displayed appropriately.
- The Read More link must work properly (linking to the <!--more--> tag location).
- If the theme supports post formats, each type must be displayed appropriately in index/archive views.
- Lack of content, such as body text, must not adversely impact the layout.
- Themes must include both the Tag and the Category taxonomies in some manner.
- Floats must be cleared properly for the floated element, that is, thumbnail images.
- Content overflow issues must be addressed. For example, a title with a long non-breaking string must not break the layout.
Themes must not transmit any data to a third-party server, including your server, without the user being informed what will be transmitted and the user opting in to it. The user must be able to opt out at any time and must be informed if the data being transmitted changes.
The only exception is the update functionality, which is allowed to transmit only the information required to make the update mechanism work.
Limited use of ‘keygates’ to verify that the user has purchased the theme is allowed, as long as the following requirements are met:
- The user must be able to unlock the item using the Purchase Code. Envato Market API tokens or other third party tokens are allowed in addition to Purchase Code but are not encouraged.
- Only the following features can be put behind a keygate:
- An update mechanism (Market and Elements)
- Importing demo content (Market only)
- Installing bundled plugins (Market only)
- Other features, including theme options or settings, cannot be put behind a keygate.
- A global notification message asking the user to activate the theme or leave a review is allowed, but must be dismissable and must not be shown again once dismissed. The following exceptions are allowed:
- A non-dismissable message may be displayed within the theme option panels (Market only).
- A "Please verify purchase to get updates" message may be displayed inline with the item in the Themes list, where the update notification usually displays (Market only).
- The Purchase Code entered by the user must be stored in the wp_options table as a string using the following syntax:
- The theme must check the wp_options table for a purchase code on theme activation and automatically unlock the theme if found.
- Themes must be compatible with the Envato Market plugin so that the installation and update features work if the customer chooses to install it.
- If you check theme activation on your server before providing demo data or plugin zip files, you must use the user provided Purchase Code for the check.
Note: Themes on Elements are only allowed to put an update mechanism behind a keygate at this point in time.
Themes may include an update mechanism. If using Envato's update plugin, the Envato Market plugin must be used instead of the Envato Toolkit plugin which is no longer supported and will stop working in the near future.
Disabling Update Checks
Theme slugs must be unique in order to prevent current or future naming conflicts with the WordPress.org theme library. Those conflicts could result in users ‘updating’ the theme to one hosted on wordpress.org.
Code based solutions to prevent theme update checks are allowed, but will only work while the theme or the plugin containing the code is active. Any solutions used must not prevent updating of WordPress core or other installed themes and plugins.
Items will be rejected for any errors, bugs, inefficiencies, incorrect API usage or other obvious problems noticed during the review.
Themes must not advertise or upsell premium services such as customisation within the WP Admin area. Ads from third-party libraries included in the theme must not be displayed to users.
If a theme contains a footer link to its item description page on Envato Market, the link must use the rel="nofollow" attribute.
- Check that your item does not contain any malware or viruses.
- We take security very seriously, and may need to take action such as removing items or accounts and contacting affected customers if viruses or malicious software is found in your item.
Under no circumstances should you try to trick review tools such as the Theme Check plugin or to try to hide code that is in violation of these requirements.
Themes must have documentation available online that is publicly accessible, that is, not behind a purchase key gate. It is no longer required to include documentation in the main zip file.
If your theme calls any files from another server, you should include information in your item documentation to advise a customer of what information may be accessible by the owner of that server. For example, if you are calling Fonts from Google’s Server for your theme, then the IP address of any visitors to the customer’s End Site may be visible to Google. You should advise customers of this so they can make provisions or adjustments to their Site.
- Make sure you have the correct licenses for any assets you have included in your item. This includes assets that are in your Item Preview only; you will still need a commercial license for preview assets.
- If you have assets that are linked to the main file, be certain you've included them in your .zip file. For these assets you will need to ensure you have a commercial redistribution license (the rights to re-sell that asset).
- Check if any of the assets you have used require attribution
- Please read What assets can i use in my items? For more information on choosing assets to include in your items.