Theme Header Generator
Produce the style.css header block WordPress reads, for a standalone theme or a child theme, without it leaving this tab.
What this tool does
Theme Header Generator writes the comment block that opens style.css — the labelled lines WordPress scans to learn a theme's name, version, author, licence and text domain before it will list it on the Appearance screen. The field names are padded so every value starts in the same column, and an optional field left blank — author, either URI, the WordPress and PHP requirements, the tags — is dropped from the block rather than written out with nothing after the colon, which is what a hand-edited header usually accumulates. Five lines are written whatever you do: Theme Name, Description, Version, License and Text Domain, so an empty version box comes back as 1.0.0 rather than as a missing line.
Fill in the parent theme folder and the output becomes a child theme: a Template line naming the parent is added, and if you also ask for functions.php you get an enqueue that loads the parent's style.css first — versioned from the parent's own Version header — then declares the child stylesheet as depending on it. Tags are matched against the vocabulary the WordPress.org theme directory accepts, and an unrecognised one is still written into the header, but the summary names it so you learn about it here rather than in a review queue. The version is checked to be something WordPress can actually compare, so 1.0.0 and 1.2.0-beta.1 pass while prose is refused.
Assembling a header is string handling, and it is done here in the page. The theme name, author, URLs and description you type are joined into text by the script already loaded in this tab, with no request made while the tool runs, so none of it is uploaded and the only copy is the one in the output pane. URLs are tidied on the way in: a missing scheme becomes https:// and a trailing slash is removed.
A header is not a theme, and that is the limit worth knowing before you start. WordPress will not activate a directory holding style.css alone — a classic theme also needs index.php, a block theme needs templates/index.html, and the Themes screen shows a blank placeholder until you add screenshot.png. None of those is generated here, and neither is theme.json. Nothing is checked against your install either: the parent folder is taken on trust, Tested up to is not compared with any real WordPress release, and the text domain is derived from the theme name but cannot be measured against the directory the theme actually sits in, which is the one place it has to match. Your description is collapsed onto a single line, because the header format allows one line per field, and nothing you type is escaped for the comment it lands in — a literal */ in the description or the theme name closes the block early, and every field below it stops counting as header.
How to use it
- Name the theme and settle the folder. Theme name is the only required field. Leave Folder / text domain empty and it is derived from the name — Harbour Light becomes harbour-light — but it must match the directory the theme lives in, so set it by hand when they differ.
- Add the details the header carries. Author, Author URI, Theme URI, Requires WordPress at least, Tested up to and Requires PHP each become a line when filled in and are left out of the block entirely when skipped. Version is the exception: clear the box and 1.0.0 is written in its place.
- Choose a licence and the tags. GPL v2 or later is the licence the WordPress.org directory requires, with GPL v3, MIT and proprietary also available. Tags are comma separated and checked against the directory's own vocabulary.
- Set a parent folder for a child theme. Filling in the parent theme folder adds the Template line and switches the generated functions.php to the parent-then-child stylesheet enqueue. Leave it empty and you get a standalone theme header instead.
- Describe the theme, then run it. The description box is optional — left empty, the header reads "A WordPress theme." Pick style.css header only, or style.css and functions.php, which come back in one pane separated by FILE markers for you to split into the two files.
Processing & privacy
Runs on your device. Your file is processed directly in this browser.
Common use cases
Starting a theme from an empty folder
The header is the first thing WordPress reads and the easiest thing to get quietly wrong. Generating it means the Appearance screen shows the name, version and author you intended on the first upload.
Building a child theme over a parent you did not write
Template has to hold the parent's directory name rather than its display title, and the parent stylesheet has to be enqueued rather than pulled in with @import. Both come out that way here.
Preparing a submission to the WordPress.org directory
The review process turns away a GPL-incompatible licence and tags outside the accepted list. Choosing GPL v2 or later and reading the summary for unrecognised tags settles both before you submit.
Bumping the version before a release
Change the version, regenerate, and replace the block at the top of style.css so what WordPress reports on the Themes screen matches the tag you are shipping.
Questions
Is anything uploaded?
Will WordPress accept a folder containing only this style.css?
Why was one of my tags flagged?
What does the parent theme folder field change?
Why was my version number refused?
Does it generate theme.json or any templates?
Related tools
- Meta Tag Preview — See how your title and description look in search results.
- Salt Key Generator — Produce a new set of WordPress authentication salts.
- wp-config Generator — Generate a wp-config.php with fresh security salts.
- .htaccess Generator — Build common Apache rules for WordPress.
- Serialized Data Fixer — Repair PHP serialized strings broken by search-replace.
- Shortcode Builder — Assemble shortcodes with attributes correctly quoted.