wp rewrite
Lists or flushes the site’s rewrite rules, updates the permalink structure.
See WP Rewrite class reference.
| Commands | Description |
|---|---|
| wp rewrite flush | Flushes rewrite rules. |
| wp rewrite structure | Updates the permalink structure. |
| wp rewrite list | Gets a list of the current rewrite rules. |
Examples
# Flush rewrite rules $ wp rewrite flush Success: Rewrite rules flushed. # Update permalink structure $ wp rewrite structure '/%year%/%monthnum%/%postname%' Success: Rewrite structure set. # List rewrite rules $ wp rewrite list --format=csv match,query,source ^wp-json/?$,index.php?rest_route=/,other ^wp-json/(.*)?,index.php?rest_route=/$matches[1],other category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$,index.php?category_name=$matches[1]&feed=$matches[2],category category/(.+?)/(feed|rdf|rss|rss2|atom)/?$,index.php?category_name=$matches[1]&feed=$matches[2],category category/(.+?)/embed/?$,index.php?category_name=$matches[1]&embed=true,category
Source code of the commands
wp rewrite flush
Flushes rewrite rules.
Resets WordPress' rewrite rules based on registered post types, etc.
To regenerate a .htaccess file with WP-CLI, you'll need to add the mod_rewrite module to your wp-cli.yml or config.yml. For example:
apache_modules:
- mod_rewrite
Usage
wp rewrite flush [--hard]
You can specify global options and the following:
[--hard]- Perform a hard flush - update
.htaccessrules as well as rewrite rules in database. Works only on single site installs.
Examples
$ wp rewrite flush Success: Rewrite rules flushed.
wp rewrite structure
Updates the permalink structure.
Sets the post permalink structure to the specified pattern.
To regenerate a .htaccess file with WP-CLI, you'll need to add the mod_rewrite module to your wp-cli.yml or config.yml. For example:
To regenerate a .htaccess file with WP-CLI, you'll need to add the mod_rewrite module to your WP-CLI config. For example:
apache_modules:
- mod_rewrite
Usage
wp rewrite structure {permastruct} [--category-base={base}] [--tag-base={base}] [--hard]
You can specify global options and the following:
{permastruct}- The new permalink structure to apply.
[--category-base={base}]- Set the base for category permalinks, i.e. '/category/'.
[--tag-base={base}]- Set the base for tag permalinks, i.e. '/tag/'.
[--hard]- Perform a hard flush - update
.htaccessrules as well as rewrite rules in database.
Examples
$ wp rewrite structure '/%year%/%monthnum%/%postname%/' Success: Rewrite structure set.
wp rewrite list
Gets a list of the current rewrite rules.
Usage
wp rewrite list [--match={url}] [--source={source}] [--fields={fields}] [--format={format}]
You can specify global options and the following:
[--match={url}]- Show rewrite rules matching a particular URL.
[--source={source}]- Show rewrite rules from a particular source.
[--fields={fields}]- Limit the output to specific fields. Defaults to match,query,source.
[--format={format}]Render output in a particular format.
Default: table
Can be:- table
- csv
- json
- count
- yaml
Examples
$ wp rewrite list --format=csv match,query,source ^wp-json/?$,index.php?rest_route=/,other ^wp-json/(.*)?,index.php?rest_route=/$matches[1],other category/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$,index.php?category_name=$matches[1]&feed=$matches[2],category category/(.+?)/(feed|rdf|rss|rss2|atom)/?$,index.php?category_name=$matches[1]&feed=$matches[2],category category/(.+?)/embed/?$,index.php?category_name=$matches[1]&embed=true,category