We are a group of volunteers who review and approve themes submitted to be included in the official WordPress Theme directory.
We do license, security, and code quality reviews.
We help build and maintain default themes.
The primary focus of the team is to help theme authors transition to blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.-based themes.
A theme must meet all of the following requirements to be included in the WordPress.orgWordPress.orgThe community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ Theme Directory.
Themes that have 3 or more distinct issues may be closed as not-approved. However, theme authors may resubmit the theme once they’ve corrected the issues.
Themes must be compatible with the GNU General Public License
Although any GPLGPLGPL is an acronym for GNU Public License. It is the standard license WordPress uses for Open Source licensing https://wordpress.org/about/license/. The GPL is a ‘copyleft’ license https://www.gnu.org/licenses/copyleft.en.html. This means that derivative work can only be distributed under the same license terms. This is in distinction to permissive free software licenses, of which the BSD license and the MIT License are widely used examples.-compatible license is acceptable, using the same license as WordPress — “GPLv2 or later” — is strongly recommended.
All code, data, and images — anything in the theme zip file — must comply with the GPL or a GPL-Compatible license. Included third-party libraries, code, images, or otherwise, must be compatible. For a specific list of compatible licenses, please read the GPL-Compatible license list on gnu.org.
Include copyright information for the theme itself.
Include license, copyright information, and source for all resources included, such as fonts or images (For assets in the public domain, copyright information is excluded).
Provide a list of all resources in one file.
All code and design must be your own or legally yours. Cloning of designs is not acceptable.
Copyright statements on the front end must only display the user’s copyright, not the theme author’s copyright.
Skip links Themes must include a mechanism that enables users to navigate directly to content or navigation on entering any given page.
These links may be positioned off-screen initially but must be available to screen reader users and must be visible on focus for sighted keyboard navigators.
A minimally conforming skip link must:
Be the first focusable element perceived by a user via a screen reader or keyboard navigation
Be visible when keyboard focus moves to the link
Move focus to the main content area of the page when activated
Notes: This only applies if there is something to skip past, such as a menu or larger headerHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. section or secondary widgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. area before the main content. In blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes, skip links are added automatically to the <main> tag.
Keyboard navigation Theme authors must provide visual keyboard focus highlighting in navigation menus and for form fields, submit buttons, and text links.
All controls and links must be reachable using the keyboard.
All controls usable with the mouse must be usable with the keyboard, regardless of device and screen size. Including but not limited to responsive versions for small screens, mobile and other touch screen devices.
Links within content and comments must be underlined When links appear within a larger body of block-level content, they must be clearly distinguishable from surrounding content (Post content, comment content, text widgets, custom options with large blocks of texts).
Links in navigation-like contexts (e.g., menus, lists of upcoming posts in widgets, grouped post metaMetaMeta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. data) do not need to be specifically distinguished from surrounding content.
The underline is the only accepted method of indicating links within the content. Bold, italicized, or color-differentiated text is ambiguous and will not pass.
If the theme has the tag ‘accessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)-ready’ then it needs to meet these additional requirements.
The theme must be secure.
Validate and sanitize untrusted data before entering it into the database.
Prefix Provide a unique prefix for everything the theme defines in the public namespace, including options, functions, global variables, constants, post meta, wp_enqueue_script/style handle names, add_image_size names, wp_script_add_data keys, slugs/ids for new categories created with register_block_pattern_category etc.
wp_enqueue_script & wp_enqueue_style handles should not be prefixed if they are 3rd-party assets, like a framework’s CSSCSSCSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. files or any 3rd-party script.
Menu locations and sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. IDs.
Everything wrapped in the admin notice must follow coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.UIUIUI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. design for notices.
Place WordPress features behind a paywall
Remove, hide, or otherwise block the admin bar from appearing
Redirect on theme activation or modify the activation process
Remove non-presentational hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.
Do not include:
Custom post types
Custom user contact methods
Custom mime types
Functionality that is not related to design and presentation
Themes may only recommend plugins that are hosted on WordPress.org.
Plugins may only be installed by user action, not automatically.
Include zip files or plugins in the theme folder, or download plugins automatically.
Include pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party functionality.
If you are not sure if a feature is plugin functionality, contact the team and ask first. firstname.lastname@example.org.
Examples of plugin territory
Analytics or tracking support
Non-design related meta boxes
Social media ‘like’, ‘follow’ and ‘share buttons’
All text strings must be translatable using gettext, with the temporary exception of text in HTMLHTMLHTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites. template files.
Use the theme slug as the text-domain and add it to style.css. The theme slug is the name of the theme in lower case, with spaces replaced by a hyphen (-). It is also the folder name for the theme.
If the theme uses a framework, then no more than two unique text domains may be used (like tgmpa, redux-framework, kirki, or some other allowed framework)
Themes must be complete at the time of submission.
Remove code not intended for the free version of the theme.
Remove directories such as .git, .svn, .hg, and .bzr.
Make sure that only one type of line ending is used. If both DOS and UNIX line endings are used, this can cause problems with SVNSVNApache Subversion (often abbreviated SVN, after its command name svn) is a software versioning and revision control system. Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS). WordPress core and the wordpress.org released code are all centrally managed through SVN. https://subversion.apache.org/., and your theme or theme update will not be uploaded to the directory.
If your theme is based on a starter theme like Underscores (_s), make sure that all files are updated correctly.
Files that are not allowed
thumbs.db => Windows thumbnail store
desktop.ini => windows system file
project.properties => NetBeans Project File
project.xml => NetBeans Project File
.kpf => Komodo Project File
php.ini => PHP server settings file
dwsync.xml => Dreamweaver project file
error_log => PHP error log
web.config => Server settings file
.sql => SQL dump file
__MACOSX => OSX system file
.lubith => Lubith theme generator file
.wie => Widget import file
.dat => Customizer import file
.xml => XML file
.sh => Shell script file
favicon.ico => Favicon
Hidden Files or Folders
Allowed xml files:
No remote resources are allowed without user consent:
Include all scripts, images, videos and other resources in the theme zip file. The only exception to this requirement is Google Fonts.
Use CDN or similar services
Fetch any files or data from a remote resource, including your websites, without the user’s explicit consent.
Theme Name: Name of the theme.
Author: The name of the individual or organization who developed the theme. Using the Theme Author’s wordpress.org username is recommended.
Description: A short description of the theme.
Version: The version, written in X.X or X.X.X format.
Requires at least: The oldest main WordPress version supported, written in X.X format.
Tested up to: The last main WordPress version the theme has been tested up to, i.e. 5.4. Only the number.
Requires PHP: The oldest PHP version supported, in X.X format, only the number
License: The license of the theme.
License URI: The URL of the theme license.
Text Domain: The string used for textdomain for translation.
Theme URI is optional. If used, it must be about the theme we’re hosting on WordPress.org. Using WordPress.org in the Theme URI is reserved for the default themes (Twenty X).
Author URI is optional. If used, it must be a page or website about the author, author theme shop, or author project/development website.
When minified scripts or files are used, the original files must also be included in the theme folder.
Use of third party libraries WordPress includes a number of libraries such as jQuery. For security and stability reasons, themes may not include those libraries in their own code. Instead, themes must use the versions of those libraries packaged with WordPress.
Block templates must be complete, and blocks may not have missing or incorrect closing tags.
Themes must use the admin_notices hook to provide any custom messages to the user. These admin notices must either be a one-time message or permanently dismissible. This notice can be used to link to a settings page or start an onboarding process, for example. Popups are not allowed upon theme activation.
Themes may optionally add custom sub-pages under Appearance in the WordPress admin.
They should only contain core WordPress UI elements and generally match the WordPress admin design.
If necessary, themes can include custom styles or scripts for their admin pages, but they cannot leak/spill out to other WordPress admin pages. Enqueue styles/scripts on the admin_enqueue_scripts hook and use $hook_suffix parameter to determine the page.
Additionally, themes must reference the correct user role capabilities when performing any action inside of the WordPress admin. They must also use an appropriate capability selector or function, such as canUser or current_user_can().
Inserting posts/pages via wp_insert|update_post() can be used if the action is done with user consent.
Themes must also only add a single database option, which should be an array when storing multiple settings. This option must also be prefixed with the theme slug.
Themes may optionally custom core WordPress options that only affect the front-end and how the website displays (e.g., site logo, front page settings), as long as the user is notified that their saved options will be modified. User consent is required.
All data passed to add_option(), update_option(), or other functions for saving to the database must be validated and/or sanitized with the correct function or method for the data type.
The following features are not allowed as part of an admin menu or onboarding process:
Themes can include one single front-facing credit link, which is restricted to the Theme URI or Author URI defined in style.css. Themes can also have an additional front-facing credit link pointing to WordPress.org.
Themes must not display obtrusive upselling
Themes must not display upselling on the front
Themes must disclose all affiliates.
The theme and its public-facing pages, including theme description, readme files, bundled starter content, and translation files, may not be used to spam. Spammy behavior includes (but is not limited to) tags to competitors’ products, blackhat SEO, and keyword stuffing.
Only submit one new theme at a time. You can submit unlimited updates for your existing themes that are in the theme directory.
Theme names cannot be “reserved” for future use.
Intentionally attempting to exploit loopholes in the guidelines may lead to suspension.
Licensing of themes distributed outside the theme directory If you distribute themes, you may only distribute themes that are 100% compatible with GPL. Otherwise, you can not add themes to the WordPress.org Theme Directory (See explanation).
Example: If you have a Themeforest account and you’re selling themes on it, all those themes need to state on their sales page that they are 100% GPL compatible (Info).
Your site needs to state that the products you’re selling/distributing (free and paid) are GPL compatible. It needs to be in an easy-to-find place for visitors.
Multiple Theme Author Accounts You can have multiple accounts with the following restrictions: You can’t have more than one (1) open ticket in any of the TracTracTrac is the place where contributors create issues for bugs or feature requests much like GitHub.https://core.trac.wordpress.org/. reports/queues or under review. That means you can’t have one (1) theme ticket from an account and another one from a secondary account simultaneously open in any of the queues.
Failing to respect the above requirement will result in the closing of all tickets and not having the possibility to upload those themes again. Also, a one (1) month no upload possibility for each ticket closed. Depending on the severity of the case, you might also end up with a permanent ban on all your accounts.
To avoid penalties, the team requests that you disclose all your accounts by emailing us at themes[at]wordpress.org.
Now that you have read and made sure that your theme follows all the requirements, you are welcome to upload your theme.