Twice monthly at Tuesday @ 15:00 UTC. Second Tuesday in the month is open floor and the fourth Tuesday is with a fixed agenda.
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 meeting twice monthly at Wednesday @ 16:00 UTC
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 repository.
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.
Along with these checks, you should also run the theme through the Theme CheckpluginPluginA 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. You can find a full list of what it checks here.
Note: If you are getting started with your first reviews, please read Become a reviewer.
Warning:If you are a theme shop you should be selling under 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. to be 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/ repo (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).
Warning:This is important, so please read it carefully
You can have multiple accounts with the following restrictions:
You can’t have more than one (1) open ticket in any of the trac 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 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, we request that you disclose all your accounts by emailing us at themes[at]wordpress.org
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
Note that this only applies if there is something to skip past, such as a menu or larger header section or secondary widget area before the main content.
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.
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. Theme nav menu locations and sidebar IDs are exceptions
Themes must support PHP7. This means there must be no PHP errors, warnings or notices when running on PHP7.
WordPress still supports lower PHP versions such as PHP 5.6 (read more). There should not be any PHP errors, warnings or notices if the theme is activated on a server with PHP 5.6. Instead of downgrading the code to work for 5.6, the theme can include a PHP version check and deactivate the theme.
Have a valid DOCTYPE declaration and include language_attributes
Avoid hard coding to modify content. Instead, use function parameters, filters and action hooks where appropriate. For example, wp_title should be modified using a filter
The theme tags in style.css and description must match what the theme actually does in respect to functionality and design. Don’t use more than 3 subject tags (See: Theme Tag List)
Themes may be backward compatible, but only for 3 major WordPress versions (version 5.0 if 5.3 is latest)
Themes should not remove, hide, or otherwise block the admin bar from appearing
Core theme activation UX should not be modified. There should be no redirect on activation behavior
All the notifications generated by a theme should use the admin_notices API and follow the core design pattern. They must be dismissible. Everything wrapped in the admin notice needs to follow core UI design for the notices
style.css must include in its header the Requires PHP and Tested up to fields.
Themes must be able to have child themes made from them (Child theme ready).
Child themes must include more than minor changes (such as font and color changes) to the parent theme to be accepted. To make it easier on the reviewer, make sure you describe what modifications/features you did on top of the parent theme (in a ticket comment).
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. Themes are only required to support the three last versions.
Tested up to: The last main WordPress version the theme has been tested up to, i.e. 5.4. Write 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.
The sample readme presented below is a living document. It may change in the future.
The file header is required. There must not be any empty lines in the file header. Tested up to field should be present.
Right now, we share the readme validator tool with plugins. Warnings are required to be fixed, except for the Stable tag warning. Notes are not required to be fixed.
The other sections are optional, but we expect theme authors to include a list of license and copyright information somewhere in the theme: The resources section may be used for this purpose.
The theme options should not be pseudo custom post types and save non-trivial user data
Non-design related functionality is not allowed (See examples below).
Use starter content, existing content, or installation instructions instead of placeholder content. Installation instructions should only be visible to users with the edit_theme_options capability, not to visitors
Showing preview/demo data or manipulating the preview on WordPress.org is not allowed and can result in your user account being terminated
Adding custom blocks for Gutenberg (the new text editor in WordPress) is not allowed. Use a companion plugin instead
Placeholder/default images for posts without defined featured images need to follow these rules:
be generic (solid color, gradient or patterns)
they can’t display logos
they can’t display text, only accepted form would be displaying the image size, 400x300px
icons are allowed as long as they are not logos. A good example is a photo camera icon
they need to be bundled within the theme, don’t use third-party placeholder services directly (e.g: placeholder.com).
Analytics or tracking support SEO options Contact forms Non-design related meta boxes Resource caching Dashboard widgets in the admin area Custom Post Types and Shortcodes Social media ‘like’, ‘follow’ and ‘share buttons’ Custom core editor (Gutenberg) blocks Default logo Session tampering
If you are using the One Click Demo Import plugin, you can not use the setting where you link directly to the files. The following is not allowed, these are considered direct links:
Any custom features, templates, options or any limitations (for example menu restrictions), should be explained. Enough documentation should be provided.
Use a single unique theme slug – as the theme slug appears in style.css. If the theme uses a framework then no more than 2 unique slugs (like tgmpa, redux-framework, kirki or some other allowed framework)
Can use any language for text, but only use the same one for all text.
If a theme author chooses to include a POT file in their theme it needs to be kept up to date with all translation strings
Text domain should be listed in the theme’s style.css head comment block
The text domain should be generated from the theme slug
Theme Name: Mim's Debacle
Text Domain: mims-debacle
Theme authors can include their own language packs that will supersede the WordPress ones
Theme authors have the choice of including their own language packs which will supersede the ones WordPress will self-install. Here is an example how the text domain is loaded:
Theme names must not use: WordPress, Theme, Twenty*
Child themes should not include the name of the parent theme unless the themes have the same author This requirement was put in place in order to prevent theme names like “Twenty Sixteen Child” and to protect theme authors
Spell “WordPress” correctly in all public-facing text: all one word, with both an uppercase W and P
Don’t use transients for things they shouldn’t be used for, like storing theme options
Use sane defaults and don’t write default setting values to the database
Use edit_theme_options capability for determining user permission to edit options, rather than relying on a role (e.g. administrator), or a different capability (e.g. edit_themes, manage_options)
Themes may only use TGM Plugin Activation or similar libraries to recommend and install plugins that are hosted on WordPress.org (by using 'required' => false for each plugin)
Themes may include libraries such as option frameworks (these must pass the requirements)
Themes may recommend GPL compatible plugins that are not hosted on WordPress.org in the readme file or the themes information page but may not include a direct link to the download for security reasons. You can link to the product page for the recommended plugin, but not directly to the download file.
The screenshot should be a reasonable representation of what the theme can look like
The screenshot may optionally show supported plugins, settings and templates
The screenshot should not be a logo or mockup
The screenshot should be no bigger than 1200 x 900px
The ratio of width to height should be 4:3
Screenshots are allowed to display only dummy text that doesn’t suggest/describe theme features, functionality, or statistics. If it looks like an advertisement, then it’s not allowed
Dummy text examples: Lorem ipsum (or similar generators), text that doesn’t describe your theme, company, service, or products
Don’t ‘phone home’ without informed user consent. Make any collection of user data “opt-in” only and have a theme option that is set to disabled by default
No URL shorteners used in the theme (bit.ly, bit.do, goo.gl etc.)
If used, it must be about the theme we’re hosting on WordPress.org
If the URI is a demo site, the content must be about the theme itself and not test data
Using WordPress.org in the Theme URI is reserved for official themes.
Author URI is optional. If used it is required to link to a page or website about the author, author theme shop, or author project/development website
Themes may have a single footer credit link, which is restricted to the Theme URI or Author URI defined in style.css
Themes may also have an additional footer credit link pointing to WordPress.org
Your site needs to state explicitly that the products you’re selling/distributing (free and paid) are GPL compatible. It needs to be in an easy-to-find place for the reviewer and customers
Themes should not display “obtrusive” upselling
Themes are not allowed to have affiliate URLs or links
Themes can add a page under the Appearance menu using add_theme_page. If they need to have sub-pages (like for example documentation, FAQs, donation link etc), then they are allowed to use add_menu_page and add_submenu_page, provided they follow these requirements:
You can’t use add_theme_page and add_menu_page at the same time, choose one or the other.
You are allowed to create only one (1) main page using add_menu_page. The recommended maximum number of sub-menu pages (add_submenu_page) is three (3).
add_submenu_page must be used only on the page created using add_menu_page.
The $position (priority) parameter must be null or only occupy the spot above the Appearance page (59). Check the code example on how to set the correct priority.
If you recommend plugins via TGMPA, you are required to use the parent_slug configuration option (this should be the top-level page’s slug).
Core UI patterns must be used. You are not allowed to style the menu & submenu page links in any way. The admin color scheme must remain the same.
Use only monochromatic icons. It must account for the admin color scheme.
The title must be kept short and not include spam.
Child themes are allowed to add one extra sub-page or remove the parent’s pages and add their own.
The text domain should be generated from the theme slug.
Notifications such as admin notices must be dismissible. This means that the notices should not only be closed, but hidden permanently when the “Dismiss” link is closed.
Only one sub-page in addition to the TGMPA plugin installation page is allowed under the Appearance section in the admin sidebar.
Only one link on the top level in the customizer is allowed. This must be done using the customizer API (no injecting via JavaScript). Example. Further unobtrusive links are allowed in a separate section.
No options or panels/sections can be locked behind a paywall.
All settings in a theme must work.
As theme features for user social media
Social media links with icons settings are allowed.
The simpler Social media sharing links that uses sharer.php? or similar are allowed.
Social media “like” and “follow” buttons are not allowed.
Theme authors social media
Social media links are allowed.
Social media “like”, “follow” and “share” buttons are not allowed.
That would print the content of the $custom_css variable inside style tags directly after the stylesheet with the handle ‘theme-style’ is printed in the head.
That would print the hide() script inside script tags directly after the script with the handle ‘theme-review-script’ is printed in the head or footer.
What is considered an external resource
With external resources we mean any external resource including but not limited to: Scripts, styles, images, apis, videos or feeds.
You cannot publish your feed inside the theme, but you can link to it.
You cannot present and show an external video, but you can link to it.
You cannot load and present adverts, offers, or logos from your own website.
You cannot use an external api to use for example Google maps or Instagram.