Theme readme.txt Generator
Generate a WordPress.org theme readme.txt: the header block, description, changelog, and the resource attributions the review requires.
=== My Theme ===
Contributors: yourwporgusername
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
A block theme for content-first sites: fast, accessible, and easy to make your own with the site editor.
== Description ==
A block theme for content-first sites: fast, accessible, and easy to make your own with the site editor.
== Installation ==
1. In the admin, go to Appearance, Themes, Add New, and upload the zip.
2. Activate the theme.
3. Open Appearance, Editor to change templates, styles and template parts.
== Frequently Asked Questions ==
= Does this theme support the site editor? =
Yes. Templates, template parts and styles are all edited there.
== Changelog ==
= 1.0.0 =
Initial release.
== Copyright ==
My Theme bundles the following third-party resources:
Inter font, Rasmus Andersson
License: SIL Open Font License 1.1
Source: https://github.com/rsms/inter
Output is valid and updates as you type.
Fix the highlighted fields to update the output.
Generate the readme.txt a theme needs for the WordPress.org directory, including the copyright section that trips up most first submissions.
How to use
- Use WordPress.org usernames for contributors, lowercase, not display names. The directory links them to profiles and silently drops anything it cannot match.
- Keep the stable tag equal to the version in
style.css. When they disagree, the directory serves a version you did not mean to publish. - List every bundled resource: fonts, images, icons, scripts. Each needs an author, a source and a GPL-compatible licence. This is what the theme review checks first.
- Write the changelog newest first. It is shown on the theme page, and it is the only place users see what changed.
- Save the file as
readme.txtin the theme root, in plain text.
Example
The copyright section, which is the one that gets submissions rejected:
== Copyright ==
My Theme bundles the following third-party resources:
Inter font, Rasmus Andersson
License: SIL Open Font License 1.1
Source: https://github.com/rsms/inter
“I found the image on a stock site” is not a licence. Every bundled asset needs a named source and a licence that is GPL compatible.
Pitfalls
- A stable tag that does not match
style.cssis the single most common packaging mistake. The directory reads the tag, not the file. - Bundled images without a licence and a source will fail the theme review. A screenshot is the usual oversight.
- Every bundled resource must be GPL compatible. A font under a licence that forbids redistribution cannot ship with the theme.
- Contributors are usernames. A display name with capitals or spaces links to nothing.
Tested up toneeds to be an actual WordPress version you tested against, and it ages quickly.- The description in the header block and the one under
== Description ==both appear; keeping them in step is your job. - A theme readme is not a plugin readme. There is no
Tags:line here: tags belong instyle.css. - Markdown does not render. The format is its own thing, with
==for sections and=for subsections.
Compatibility
The readme format is read by the WordPress.org theme directory. Requires at least, Tested up to and Requires PHP are honoured by WordPress itself from 5.8 onwards for install and update checks. Themes have used this file since the directory began; the Copyright section became a review requirement for bundled resources. The tool runs entirely in your browser.
Frequently asked questions
Is this the same as a plugin readme?
Tags: line, and it needs the copyright section for bundled resources.Where do the theme tags go?
style.css, not here. The directory reads them from the theme header.What has to be listed under Copyright?
Why does my theme show an old version?
style.css disagree. The directory follows the tag.Does the description support Markdown?
== for sections and = for subsections, and otherwise plain text.