Plugin Settings
The Text Domain must match the plugin directory name. The Namespace / Main Class becomes the PHP class name. Generated code includes a
defined('ABSPATH') || exit security guard and declare(strict_types=1).
plugin.php
Theme Settings
Leave Parent Theme empty for standalone themes — set it only for child themes (enter the parent's directory name, e.g.
twentytwentyfive). Block themes generate an additional theme.json tab with color palette, font sizes, and layout settings; functions.php handles feature registration only. The text domain must match the theme directory name.
Block Settings
Block name format:
namespace/block-name — both parts lowercase. Dynamic blocks render via a PHP callback; the JS save() function must return null. The block is registered via register_block_type() pointing to the generated block.json.
Hook Settings
Action callbacks return
void; Filter callbacks must return the (modified) value. Lower priority number = earlier execution (default 10). Accepted Args must match the number of parameters the hook actually passes.
hooks.php
Cron Event Settings
WP-Cron fires on page load, not a real server clock — for reliability, set
DISABLE_WP_CRON in wp-config.php and call wp-cron.php via a real system cron. The hook name is the event identifier for wp_next_scheduled() and wp_clear_scheduled_hook(). Generated code guards against double-scheduling with wp_next_scheduled().
cron.php
Asset Settings
The handle must be globally unique — WordPress silently skips re-registering duplicate handles. Dependency handles must match their exact registered names (e.g.
jquery, wp-blocks, wp-element). filemtime versioning uses the file's last-modified timestamp to bust browser caches automatically on every file change.
enqueue.php
Shortcode Settings
| Attribute Name | Default Value | |
|---|---|---|
Tag names may only contain lowercase letters, numbers, hyphens and underscores — no spaces or uppercase. Always sanitize attribute values before output:
esc_html(), esc_url(), intval() etc. Shortcodes are not processed in widget text by default; add add_filter( 'widget_text', 'do_shortcode' ) if needed.
shortcode.php
Custom Post Type Settings
Slug max 20 characters — it becomes the database
post_type value, URL segment and query var. Set show_in_rest to expose the CPT via the REST API and enable the Block Editor. Hierarchical CPTs support parent–child relationships (like Pages); non-hierarchical do not (like Posts).
cpt.php
Taxonomy Settings
Taxonomy slug max 32 characters.
hierarchical: true → category-like (parent terms, checkbox UI); false → tag-like (free-form text). Assign to additional post types later with register_taxonomy_for_object_type().
taxonomy.php
Post Status Settings
Slug must not conflict with built-in statuses:
publish, draft, pending, private, trash, auto-draft, inherit. publicly_queryable controls whether front-end single-post URLs are accessible. Register on init before any posts are queried.
post-status.php
Meta Box Settings
| Type | Meta Key | Label | |
|---|---|---|---|
Context:
normal = main editing column, side = right sidebar, advanced = below normal. Priority: high = near top within context, low = near bottom. Generated save code includes nonce verification and current_user_can() checks.
meta-box.php
Dashboard Widget Settings
The widget ID must be site-wide unique — duplicate IDs silently overwrite earlier registrations. Capability restricts visibility:
manage_options = admins, edit_posts = editors and above. An optional 4th $control_callback argument to wp_add_dashboard_widget() adds a widget settings form.
dashboard-widget.php
Settings Page Settings
| Section ID | Section Title | Description | |
|---|---|---|---|
| Field ID | Label | Type | Section ID | |
|---|---|---|---|---|
Section ID in the Fields table must match an existing section. The Option Name is the key stored in
wp_options — prefix it to avoid conflicts with other plugins. A sanitize_callback is generated per field type; always review it before deploying.
settings-page.php
Admin Bar Settings
| Node ID | Title | Parent ID | href | _blank | |
|---|---|---|---|---|---|
Parent ID: Leave empty for top-level nodes; set to a Node ID to nest as child. Built-in parents:
href: A plain URL or a PHP expression, e.g.
Priority: Higher numbers = later in the bar. Default WP nodes use 0–100; use ≥ 100 to append after them.
my-account, site-name, top-secondary.href: A plain URL or a PHP expression, e.g.
admin_url('admin.php?page=my-page'). PHP expressions (containing ()) are output as-is; plain URLs are wrapped with esc_url().Priority: Higher numbers = later in the bar. Default WP nodes use 0–100; use ≥ 100 to append after them.
admin-bar.php
Contact Methods Settings
| Field Key (becomes user meta key) | Label | |
|---|---|---|
| Field Key to Remove |
|---|
The Field Key becomes the user meta key:
Common built-in keys that can be removed:
get_user_meta( $user_id, 'twitter', true ). Use only lowercase letters, numbers and underscores.Common built-in keys that can be removed:
aim, yim, jabber.
contact-methods.php
wp-config.php Settings
Fetches 8 unique 64-char keys from the local generator API and inserts them into the output.
Place these constants above the
require ABSPATH . 'wp-settings.php' line. Sensitive values (credentials, salts) should never be committed to version control — use server environment variables or a .env file outside the webroot instead. Rotate salt keys after any security incident.
wp-config.php
Query Builder
| Key | Value | Compare | Type |
|---|
| Taxonomy | Field | Terms | Operator |
|---|
| Taxonomy | Field | Terms | Operator | Children | |
|---|---|---|---|---|---|
| Key | Value | Compare | Type | |
|---|---|---|---|---|
| After (YYYY-MM-DD) | Before (YYYY-MM-DD) | Inclusive | |
|---|---|---|---|
query.php
Post Meta Field Settings
Leave empty to register for all post types.
The meta key is stored in
wp_postmeta — prefix it (e.g. _my_plugin_key) to avoid conflicts; underscore-prefixed keys are hidden from the default Custom Fields UI. single: true returns a scalar from get_post_meta(); false returns all values as an array. show_in_rest: true requires an auth_callback and exposes the meta to the Block Editor and REST API.
post-meta.php
Term Meta Field Settings
Term meta is stored in
wp_termmeta — prefix the key to avoid collisions. Access with get_term_meta( $term_id, 'key', true ) / update_term_meta() / delete_term_meta(). When "Generate form field integration" is enabled, save hooks created_{taxonomy} and edited_{taxonomy} are included automatically.
term-meta.php
Sidebar Settings
| Area ID (slug) | Name | Description | |
|---|---|---|---|
Widget areas require the Classic Widgets plugin or a non-block theme — block themes use Block Patterns and Template Parts instead.
%1$s in before_widget is replaced with the widget's HTML id; %2$s with its CSS class. Register on widgets_init — calling it earlier may cause widgets not to appear.
sidebars.php
Command Settings
The class must extend
\WP_CLI_Command; WP-CLI reads PHPDoc to build --help output automatically. Argument syntax in docblocks: <name> = positional required, [<name>] = positional optional, [--key=<value>] = associative, [--flag] = boolean flag. The --- block inside ## OPTIONS defines the default value and allowed options. Load the file early — from a plugin or MU-plugin, not a theme — and keep the WP-CLI guard enabled so the file is a no-op on regular web requests.
Subcommands
No subcommands yet — click "Add Subcommand" above.
wpcli-commands.php
oEmbed Provider Settings
| URL Pattern | oEmbed Endpoint | Regex | |
|---|---|---|---|
URL Pattern: Use a wildcard (
*) for simple matching, e.g. https://example.com/video/*. Enable Regex for advanced PHP regex patterns, e.g. #https?://example\.com/video/\d+#i.
oembed-providers.php
Dashicons Browser 349 icons — click to copy
Theme Snippet
Generated Snippet
Disclaimer: The generated code is provided solely as a non-binding starting point. No representation or warranty of any kind, express or implied, is made regarding the accuracy, completeness, functionality, security, legal compliance, or fitness for a particular purpose of the generated code. Use of the generated code is entirely at your own risk. You are solely responsible for reviewing, testing, modifying, and validating any code before deploying it in a production environment.
This tool is an independent software product and is not affiliated with, endorsed by, sponsored by, or otherwise associated with WordPress, the WordPress Foundation, or Automattic Inc. “WordPress” is a registered trademark of the WordPress Foundation. All other trademarks, product names, and company names mentioned are the property of their respective owners. Any references to WordPress are for descriptive and compatibility purposes only.
The operator of this tool assumes no liability for any direct, indirect, incidental, consequential, or special damages arising out of or in connection with the use of the generated code or the use of this tool.
This tool is an independent software product and is not affiliated with, endorsed by, sponsored by, or otherwise associated with WordPress, the WordPress Foundation, or Automattic Inc. “WordPress” is a registered trademark of the WordPress Foundation. All other trademarks, product names, and company names mentioned are the property of their respective owners. Any references to WordPress are for descriptive and compatibility purposes only.
The operator of this tool assumes no liability for any direct, indirect, incidental, consequential, or special damages arising out of or in connection with the use of the generated code or the use of this tool.