wp-cli/entity-command
Manage WordPress comments, menus, options, posts, sites, terms, and users., (*1)
, (*2)
Quick links: Using | Installing | Contributing | Support, (*3)
Using
This package implements the following commands:, (*4)
Creates, updates, deletes, and moderates comments., (*5)
wp comment
EXAMPLES, (*6)
# Create a new comment.
$ wp comment create --comment_post_ID=15 --comment_content="hello blog" --comment_author="wp-cli"
Success: Created comment 932.
# Update an existing comment.
$ wp comment update 123 --comment_author='That Guy'
Success: Updated comment 123.
# Delete an existing comment.
$ wp comment delete 1337 --force
Success: Deleted comment 1337.
# Trash all spam comments.
$ wp comment delete $(wp comment list --status=spam --format=ids)
Success: Trashed comment 264.
Success: Trashed comment 262.
Approves a comment., (*7)
wp comment approve <id>...
OPTIONS, (*8)
<id>...
The IDs of the comments to approve.
EXAMPLES, (*9)
# Approve comment.
$ wp comment approve 1337
Success: Approved comment 1337.
Counts comments, on whole blog or on a given post., (*10)
wp comment count [<post-id>]
OPTIONS, (*11)
[<post-id>]
The ID of the post to count comments in.
EXAMPLES, (*12)
# Count comments on whole blog.
$ wp comment count
approved: 33
spam: 3
trash: 1
post-trashed: 0
all: 34
moderated: 1
total_comments: 37
# Count comments in a post.
$ wp comment count 42
approved: 19
spam: 0
trash: 0
post-trashed: 0
all: 19
moderated: 0
total_comments: 19
Creates a new comment., (*13)
wp comment create [--<field>=<value>] [--porcelain]
OPTIONS, (*14)
[--<field>=<value>]
Associative args for the new comment. See wp_insert_comment().
[--porcelain]
Output just the new comment id.
EXAMPLES, (*15)
# Create comment.
$ wp comment create --comment_post_ID=15 --comment_content="hello blog" --comment_author="wp-cli"
Success: Created comment 932.
Deletes a comment., (*16)
wp comment delete <id>... [--force]
OPTIONS, (*17)
<id>...
One or more IDs of comments to delete.
[--force]
Skip the trash bin.
EXAMPLES, (*18)
# Delete comment.
$ wp comment delete 1337 --force
Success: Deleted comment 1337.
# Delete multiple comments.
$ wp comment delete 1337 2341 --force
Success: Deleted comment 1337.
Success: Deleted comment 2341.
Verifies whether a comment exists., (*19)
wp comment exists <id>
Displays a success message if the comment does exist., (*20)
OPTIONS, (*21)
<id>
The ID of the comment to check.
EXAMPLES, (*22)
# Check whether comment exists.
$ wp comment exists 1337
Success: Comment with ID 1337 exists.
Generates some number of new dummy comments., (*23)
wp comment generate [--count=<number>] [--post_id=<post-id>] [--format=<format>]
Creates a specified number of new comments with dummy data., (*24)
OPTIONS, (*25)
[--count=<number>]
How many comments to generate?
---
default: 100
---
[--post_id=<post-id>]
Assign comments to a specific post.
[--format=<format>]
Render output in a particular format.
---
default: progress
options:
- progress
- ids
---
EXAMPLES, (*26)
# Generate comments for the given post.
$ wp comment generate --format=ids --count=3 --post_id=123
138 139 140
# Add meta to every generated comment.
$ wp comment generate --format=ids --count=3 | xargs -d ' ' -I % wp comment meta add % foo bar
Success: Added custom field.
Success: Added custom field.
Success: Added custom field.
Gets the data of a single comment., (*27)
wp comment get <id> [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*28)
<id>
The comment to get.
[--field=<field>]
Instead of returning the whole comment, returns the value of a single field.
[--fields=<fields>]
Limit the output to specific fields. Defaults to all fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
---
EXAMPLES, (*29)
# Get comment.
$ wp comment get 21 --field=content
Thanks for all the comments, everyone!
Gets a list of comments., (*30)
wp comment list [--<field>=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>]
Display comments based on all arguments supported by
WP_Comment_Query()., (*31)
OPTIONS, (*32)
[--<field>=<value>]
One or more args to pass to WP_Comment_Query.
[--field=<field>]
Prints the value of a single field for each comment.
[--fields=<fields>]
Limit the output to specific object fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- ids
- csv
- json
- count
- yaml
---
AVAILABLE FIELDS, (*33)
These fields will be displayed by default for each comment:, (*34)
- comment_ID
- comment_post_ID
- comment_date
- comment_approved
- comment_author
- comment_author_email
These fields are optionally available:, (*35)
- comment_author_url
- comment_author_IP
- comment_date_gmt
- comment_content
- comment_karma
- comment_agent
- comment_type
- comment_parent
- user_id
- url
EXAMPLES, (*36)
# List comment IDs.
$ wp comment list --field=ID
22
23
24
# List comments of a post.
$ wp comment list --post_id=1 --fields=ID,comment_date,comment_author
+------------+---------------------+----------------+
| comment_ID | comment_date | comment_author |
+------------+---------------------+----------------+
| 1 | 2015-06-20 09:00:10 | Mr WordPress |
+------------+---------------------+----------------+
# List approved comments.
$ wp comment list --number=3 --status=approve --fields=ID,comment_date,comment_author
+------------+---------------------+----------------+
| comment_ID | comment_date | comment_author |
+------------+---------------------+----------------+
| 1 | 2015-06-20 09:00:10 | Mr WordPress |
| 30 | 2013-03-14 12:35:07 | John Doe |
| 29 | 2013-03-14 11:56:08 | Jane Doe |
+------------+---------------------+----------------+
# List unapproved comments.
$ wp comment list --number=3 --status=hold --fields=ID,comment_date,comment_author
+------------+---------------------+----------------+
| comment_ID | comment_date | comment_author |
+------------+---------------------+----------------+
| 8 | 2023-11-10 13:13:06 | John Doe |
| 7 | 2023-11-10 13:09:55 | Mr WordPress |
| 9 | 2023-11-10 11:22:31 | Jane Doe |
+------------+---------------------+----------------+
# List comments marked as spam.
$ wp comment list --status=spam --fields=ID,comment_date,comment_author
+------------+---------------------+----------------+
| comment_ID | comment_date | comment_author |
+------------+---------------------+----------------+
| 2 | 2023-11-10 11:22:31 | Jane Doe |
+------------+---------------------+----------------+
# List comments in trash.
$ wp comment list --status=trash --fields=ID,comment_date,comment_author
+------------+---------------------+----------------+
| comment_ID | comment_date | comment_author |
+------------+---------------------+----------------+
| 3 | 2023-11-10 11:22:31 | John Doe |
+------------+---------------------+----------------+
Adds, updates, deletes, and lists comment custom fields., (*37)
wp comment meta
EXAMPLES, (*38)
# Set comment meta
$ wp comment meta set 123 description "Mary is a WordPress developer."
Success: Updated custom field 'description'.
# Get comment meta
$ wp comment meta get 123 description
Mary is a WordPress developer.
# Update comment meta
$ wp comment meta update 123 description "Mary is an awesome WordPress developer."
Success: Updated custom field 'description'.
# Delete comment meta
$ wp comment meta delete 123 description
Success: Deleted custom field.
Add a meta field., (*39)
wp comment meta add <id> <key> [<value>] [--format=<format>]
OPTIONS, (*40)
<id>
The ID of the object.
<key>
The name of the meta field to create.
[<value>]
The value of the meta field. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
Delete a meta field., (*41)
wp comment meta delete <id> [<key>] [<value>] [--all]
OPTIONS, (*42)
<id>
The ID of the object.
[<key>]
The name of the meta field to delete.
[<value>]
The value to delete. If omitted, all rows with key will deleted.
[--all]
Delete all meta for the object.
Get meta field value., (*43)
wp comment meta get <id> <key> [--format=<format>]
OPTIONS, (*44)
<id>
The ID of the object.
<key>
The name of the meta field to get.
[--format=<format>]
Get value in a particular format.
---
default: var_export
options:
- var_export
- json
- yaml
---
List all metadata associated with an object., (*45)
wp comment meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>] [--unserialize]
OPTIONS, (*46)
<id>
ID for the object.
[--keys=<keys>]
Limit output to metadata of specific keys.
[--fields=<fields>]
Limit the output to specific row fields. Defaults to id,meta_key,meta_value.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
- count
---
[--orderby=<fields>]
Set orderby which field.
---
default: id
options:
- id
- meta_key
- meta_value
---
[--order=<order>]
Set ascending or descending order.
---
default: asc
options:
- asc
- desc
---
[--unserialize]
Unserialize meta_value output.
Update a nested value for a meta field., (*47)
wp comment meta patch <action> <id> <key> <key-path>... [<value>] [--format=<format>]
OPTIONS, (*48)
<action>
Patch action to perform.
---
options:
- insert
- update
- delete
---
<id>
The ID of the object.
<key>
The name of the meta field to update.
<key-path>...
The name(s) of the keys within the value to locate the value to patch.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
Get a nested value from a meta field., (*49)
wp comment meta pluck <id> <key> <key-path>... [--format=<format>]
OPTIONS, (*50)
<id>
The ID of the object.
<key>
The name of the meta field to get.
<key-path>...
The name(s) of the keys within the value to locate the value to pluck.
[--format=<format>]
The output format of the value.
---
default: plaintext
options:
- plaintext
- json
- yaml
Update a meta field., (*51)
wp comment meta update <id> <key> [<value>] [--format=<format>]
OPTIONS, (*52)
<id>
The ID of the object.
<key>
The name of the meta field to update.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
Recalculates the comment_count value for one or more posts., (*53)
wp comment recount <id>...
OPTIONS, (*54)
<id>...
IDs for one or more posts to update.
EXAMPLES, (*55)
# Recount comment for the post.
$ wp comment recount 123
Updated post 123 comment count to 67.
Marks a comment as spam., (*56)
wp comment spam <id>...
OPTIONS, (*57)
<id>...
The IDs of the comments to mark as spam.
EXAMPLES, (*58)
# Spam comment.
$ wp comment spam 1337
Success: Marked as spam comment 1337.
Gets the status of a comment., (*59)
wp comment status <id>
OPTIONS, (*60)
<id>
The ID of the comment to check.
EXAMPLES, (*61)
# Get status of comment.
$ wp comment status 1337
approved
Trashes a comment., (*62)
wp comment trash <id>...
OPTIONS, (*63)
<id>...
The IDs of the comments to trash.
EXAMPLES, (*64)
# Trash comment.
$ wp comment trash 1337
Success: Trashed comment 1337.
Unapproves a comment., (*65)
wp comment unapprove <id>...
OPTIONS, (*66)
<id>...
The IDs of the comments to unapprove.
EXAMPLES, (*67)
# Unapprove comment.
$ wp comment unapprove 1337
Success: Unapproved comment 1337.
Unmarks a comment as spam., (*68)
wp comment unspam <id>...
OPTIONS, (*69)
<id>...
The IDs of the comments to unmark as spam.
EXAMPLES, (*70)
# Unspam comment.
$ wp comment unspam 1337
Success: Unspammed comment 1337.
Untrashes a comment., (*71)
wp comment untrash <id>...
OPTIONS, (*72)
<id>...
The IDs of the comments to untrash.
EXAMPLES, (*73)
# Untrash comment.
$ wp comment untrash 1337
Success: Untrashed comment 1337.
Updates one or more comments., (*74)
wp comment update <id>... --<field>=<value>
OPTIONS, (*75)
<id>...
One or more IDs of comments to update.
--<field>=<value>
One or more fields to update. See wp_update_comment().
EXAMPLES, (*76)
# Update comment.
$ wp comment update 123 --comment_author='That Guy'
Success: Updated comment 123.
Lists, creates, assigns, and deletes the active theme's navigation menus., (*77)
wp menu
See the Navigation Menus reference in the Theme Handbook., (*78)
EXAMPLES, (*79)
# Create a new menu
$ wp menu create "My Menu"
Success: Created menu 200.
# List existing menus
$ wp menu list
+---------+----------+----------+-----------+-------+
| term_id | name | slug | locations | count |
+---------+----------+----------+-----------+-------+
| 200 | My Menu | my-menu | | 0 |
| 177 | Top Menu | top-menu | primary | 7 |
+---------+----------+----------+-----------+-------+
# Create a new menu link item
$ wp menu item add-custom my-menu Apple http://apple.com --porcelain
1922
# Assign the 'my-menu' menu to the 'primary' location
$ wp menu location assign my-menu primary
Success: Assigned location primary to menu my-menu.
Creates a new menu., (*80)
wp menu create <menu-name> [--porcelain]
OPTIONS, (*81)
<menu-name>
A descriptive name for the menu.
[--porcelain]
Output just the new menu id.
EXAMPLES, (*82)
$ wp menu create "My Menu"
Success: Created menu 200.
Deletes one or more menus., (*83)
wp menu delete <menu>...
OPTIONS, (*84)
<menu>...
The name, slug, or term ID for the menu(s).
EXAMPLES, (*85)
$ wp menu delete "My Menu"
Deleted menu 'My Menu'.
Success: Deleted 1 of 1 menus.
List, add, and delete items associated with a menu., (*86)
wp menu item
EXAMPLES, (*87)
# Add an existing post to an existing menu
$ wp menu item add-post sidebar-menu 33 --title="Custom Test Post"
Success: Menu item added.
# Create a new menu link item
$ wp menu item add-custom sidebar-menu Apple http://apple.com
Success: Menu item added.
# Delete menu item
$ wp menu item delete 45
Success: Deleted 1 of 1 menu items.
Adds a custom menu item., (*88)
wp menu item add-custom <menu> <title> <link> [--description=<description>] [--attr-title=<attr-title>] [--target=<target>] [--classes=<classes>] [--position=<position>] [--parent-id=<parent-id>] [--porcelain]
OPTIONS, (*89)
<menu>
The name, slug, or term ID for the menu.
<title>
Title for the link.
<link>
Target URL for the link.
[--description=<description>]
Set a custom description for the menu item.
[--attr-title=<attr-title>]
Set a custom title attribute for the menu item.
[--target=<target>]
Set a custom link target for the menu item.
[--classes=<classes>]
Set a custom link classes for the menu item.
[--position=<position>]
Specify the position of this menu item.
[--parent-id=<parent-id>]
Make this menu item a child of another menu item.
[--porcelain]
Output just the new menu item id.
EXAMPLES, (*90)
$ wp menu item add-custom sidebar-menu Apple http://apple.com
Success: Menu item added.
Adds a post as a menu item., (*91)
wp menu item add-post <menu> <post-id> [--title=<title>] [--link=<link>] [--description=<description>] [--attr-title=<attr-title>] [--target=<target>] [--classes=<classes>] [--position=<position>] [--parent-id=<parent-id>] [--porcelain]
OPTIONS, (*92)
<menu>
The name, slug, or term ID for the menu.
<post-id>
Post ID to add to the menu.
[--title=<title>]
Set a custom title for the menu item.
[--link=<link>]
Set a custom url for the menu item.
[--description=<description>]
Set a custom description for the menu item.
[--attr-title=<attr-title>]
Set a custom title attribute for the menu item.
[--target=<target>]
Set a custom link target for the menu item.
[--classes=<classes>]
Set a custom link classes for the menu item.
[--position=<position>]
Specify the position of this menu item.
[--parent-id=<parent-id>]
Make this menu item a child of another menu item.
[--porcelain]
Output just the new menu item id.
EXAMPLES, (*93)
$ wp menu item add-post sidebar-menu 33 --title="Custom Test Post"
Success: Menu item added.
Adds a taxonomy term as a menu item., (*94)
wp menu item add-term <menu> <taxonomy> <term-id> [--title=<title>] [--link=<link>] [--description=<description>] [--attr-title=<attr-title>] [--target=<target>] [--classes=<classes>] [--position=<position>] [--parent-id=<parent-id>] [--porcelain]
OPTIONS, (*95)
<menu>
The name, slug, or term ID for the menu.
<taxonomy>
Taxonomy of the term to be added.
<term-id>
Term ID of the term to be added.
[--title=<title>]
Set a custom title for the menu item.
[--link=<link>]
Set a custom url for the menu item.
[--description=<description>]
Set a custom description for the menu item.
[--attr-title=<attr-title>]
Set a custom title attribute for the menu item.
[--target=<target>]
Set a custom link target for the menu item.
[--classes=<classes>]
Set a custom link classes for the menu item.
[--position=<position>]
Specify the position of this menu item.
[--parent-id=<parent-id>]
Make this menu item a child of another menu item.
[--porcelain]
Output just the new menu item id.
EXAMPLES, (*96)
$ wp menu item add-term sidebar-menu post_tag 24
Success: Menu item added.
Deletes one or more items from a menu., (*97)
wp menu item delete <db-id>...
OPTIONS, (*98)
<db-id>...
Database ID for the menu item(s).
EXAMPLES, (*99)
$ wp menu item delete 45
Success: Deleted 1 of 1 menu items.
Gets a list of items associated with a menu., (*100)
wp menu item list <menu> [--fields=<fields>] [--format=<format>]
OPTIONS, (*101)
<menu>
The name, slug, or term ID for the menu.
[--fields=<fields>]
Limit the output to specific object fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- count
- ids
- yaml
---
AVAILABLE FIELDS, (*102)
These fields will be displayed by default for each menu item:, (*103)
- db_id
- type
- title
- link
- position
These fields are optionally available:, (*104)
- menu_item_parent
- object_id
- object
- type
- type_label
- target
- attr_title
- description
- classes
- xfn
EXAMPLES, (*105)
$ wp menu item list main-menu
+-------+-----------+-------------+---------------------------------+----------+
| db_id | type | title | link | position |
+-------+-----------+-------------+---------------------------------+----------+
| 5 | custom | Home | http://example.com | 1 |
| 6 | post_type | Sample Page | http://example.com/sample-page/ | 2 |
+-------+-----------+-------------+---------------------------------+----------+
Updates a menu item., (*106)
wp menu item update <db-id> [--title=<title>] [--link=<link>] [--description=<description>] [--attr-title=<attr-title>] [--target=<target>] [--classes=<classes>] [--position=<position>] [--parent-id=<parent-id>]
OPTIONS, (*107)
<db-id>
Database ID for the menu item.
[--title=<title>]
Set a custom title for the menu item.
[--link=<link>]
Set a custom url for the menu item.
[--description=<description>]
Set a custom description for the menu item.
[--attr-title=<attr-title>]
Set a custom title attribute for the menu item.
[--target=<target>]
Set a custom link target for the menu item.
[--classes=<classes>]
Set a custom link classes for the menu item.
[--position=<position>]
Specify the position of this menu item.
[--parent-id=<parent-id>]
Make this menu item a child of another menu item.
EXAMPLES, (*108)
$ wp menu item update 45 --title=WordPress --link='http://wordpress.org' --target=_blank --position=2
Success: Menu item updated.
Gets a list of menus., (*109)
wp menu list [--fields=<fields>] [--format=<format>]
OPTIONS, (*110)
[--fields=<fields>]
Limit the output to specific object fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- count
- ids
- yaml
---
AVAILABLE FIELDS, (*111)
These fields will be displayed by default for each menu:, (*112)
These fields are optionally available:, (*113)
- term_group
- term_taxonomy_id
- taxonomy
- description
- parent
- locations
EXAMPLES, (*114)
$ wp menu list
+---------+----------+----------+-----------+-------+
| term_id | name | slug | locations | count |
+---------+----------+----------+-----------+-------+
| 200 | My Menu | my-menu | | 0 |
| 177 | Top Menu | top-menu | primary | 7 |
+---------+----------+----------+-----------+-------+
Assigns, removes, and lists a menu's locations., (*115)
wp menu location
EXAMPLES, (*116)
# List available menu locations
$ wp menu location list
+----------+-------------------+
| location | description |
+----------+-------------------+
| primary | Primary Menu |
| social | Social Links Menu |
+----------+-------------------+
# Assign the 'primary-menu' menu to the 'primary' location
$ wp menu location assign primary-menu primary
Success: Assigned location primary to menu primary-menu.
# Remove the 'primary-menu' menu from the 'primary' location
$ wp menu location remove primary-menu primary
Success: Removed location from menu.
Assigns a location to a menu., (*117)
wp menu location assign <menu> <location>
OPTIONS, (*118)
<menu>
The name, slug, or term ID for the menu.
<location>
Location's slug.
EXAMPLES, (*119)
$ wp menu location assign primary-menu primary
Success: Assigned location primary to menu primary-menu.
Lists locations for the current theme., (*120)
wp menu location list [--format=<format>]
OPTIONS, (*121)
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- count
- yaml
- ids
---
AVAILABLE FIELDS, (*122)
These fields will be displayed by default for each location:, (*123)
EXAMPLES, (*124)
$ wp menu location list
+----------+-------------------+
| location | description |
+----------+-------------------+
| primary | Primary Menu |
| social | Social Links Menu |
+----------+-------------------+
Removes a location from a menu., (*125)
wp menu location remove <menu> <location>
OPTIONS, (*126)
<menu>
The name, slug, or term ID for the menu.
<location>
Location's slug.
EXAMPLES, (*127)
$ wp menu location remove primary-menu primary
Success: Removed location from menu.
Gets, adds, updates, deletes, and lists network custom fields., (*128)
wp network meta
EXAMPLES, (*129)
# Get a list of super-admins
$ wp network meta get 1 site_admins
array (
0 => 'supervisor',
)
Add a meta field., (*130)
wp network meta add <id> <key> [<value>] [--format=<format>]
OPTIONS, (*131)
<id>
The ID of the object.
<key>
The name of the meta field to create.
[<value>]
The value of the meta field. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
Delete a meta field., (*132)
wp network meta delete <id> [<key>] [<value>] [--all]
OPTIONS, (*133)
<id>
The ID of the object.
[<key>]
The name of the meta field to delete.
[<value>]
The value to delete. If omitted, all rows with key will deleted.
[--all]
Delete all meta for the object.
Get meta field value., (*134)
wp network meta get <id> <key> [--format=<format>]
OPTIONS, (*135)
<id>
The ID of the object.
<key>
The name of the meta field to get.
[--format=<format>]
Get value in a particular format.
---
default: var_export
options:
- var_export
- json
- yaml
---
List all metadata associated with an object., (*136)
wp network meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>] [--unserialize]
OPTIONS, (*137)
<id>
ID for the object.
[--keys=<keys>]
Limit output to metadata of specific keys.
[--fields=<fields>]
Limit the output to specific row fields. Defaults to id,meta_key,meta_value.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
- count
---
[--orderby=<fields>]
Set orderby which field.
---
default: id
options:
- id
- meta_key
- meta_value
---
[--order=<order>]
Set ascending or descending order.
---
default: asc
options:
- asc
- desc
---
[--unserialize]
Unserialize meta_value output.
Update a nested value for a meta field., (*138)
wp network meta patch <action> <id> <key> <key-path>... [<value>] [--format=<format>]
OPTIONS, (*139)
<action>
Patch action to perform.
---
options:
- insert
- update
- delete
---
<id>
The ID of the object.
<key>
The name of the meta field to update.
<key-path>...
The name(s) of the keys within the value to locate the value to patch.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
Get a nested value from a meta field., (*140)
wp network meta pluck <id> <key> <key-path>... [--format=<format>]
OPTIONS, (*141)
<id>
The ID of the object.
<key>
The name of the meta field to get.
<key-path>...
The name(s) of the keys within the value to locate the value to pluck.
[--format=<format>]
The output format of the value.
---
default: plaintext
options:
- plaintext
- json
- yaml
Update a meta field., (*142)
wp network meta update <id> <key> [<value>] [--format=<format>]
OPTIONS, (*143)
<id>
The ID of the object.
<key>
The name of the meta field to update.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
wp option
Retrieves and sets site options, including plugin and WordPress settings., (*144)
wp option
See the Plugin Settings API and the Theme Options for more information on adding customized options., (*145)
EXAMPLES, (*146)
# Get site URL.
$ wp option get siteurl
http://example.com
# Add option.
$ wp option add my_option foobar
Success: Added 'my_option' option.
# Update option.
$ wp option update my_option '{"foo": "bar"}' --format=json
Success: Updated 'my_option' option.
# Delete option.
$ wp option delete my_option
Success: Deleted 'my_option' option.
wp option add
Adds a new option value., (*147)
wp option add <key> [<value>] [--format=<format>] [--autoload=<autoload>]
Errors if the option already exists., (*148)
OPTIONS, (*149)
<key>
The name of the option to add.
[<value>]
The value of the option to add. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
[--autoload=<autoload>]
Should this option be automatically loaded.
---
options:
- 'on'
- 'off'
- 'yes'
- 'no'
---
EXAMPLES, (*150)
# Create an option by reading a JSON file.
$ wp option add my_option --format=json < config.json
Success: Added 'my_option' option.
wp option delete
Deletes an option., (*151)
wp option delete <key>...
OPTIONS, (*152)
<key>...
Key for the option.
EXAMPLES, (*153)
# Delete an option.
$ wp option delete my_option
Success: Deleted 'my_option' option.
# Delete multiple options.
$ wp option delete option_one option_two option_three
Success: Deleted 'option_one' option.
Success: Deleted 'option_two' option.
Warning: Could not delete 'option_three' option. Does it exist?
wp option get
Gets the value for an option., (*154)
wp option get <key> [--format=<format>]
OPTIONS, (*155)
<key>
Key for the option.
[--format=<format>]
Get value in a particular format.
---
default: var_export
options:
- var_export
- json
- yaml
---
EXAMPLES, (*156)
# Get option.
$ wp option get home
http://example.com
# Get blog description.
$ wp option get blogdescription
A random blog description
# Get blog name
$ wp option get blogname
A random blog name
# Get admin email.
$ wp option get admin_email
someone@example.com
# Get option in JSON format.
$ wp option get active_plugins --format=json
{"0":"dynamically-dynamic-sidebar\/dynamically-dynamic-sidebar.php","1":"monster-widget\/monster-widget.php","2":"show-current-template\/show-current-template.php","3":"theme-check\/theme-check.php","5":"wordpress-importer\/wordpress-importer.php"}
wp option list
Lists options and their values., (*157)
wp option list [--search=<pattern>] [--exclude=<pattern>] [--autoload=<value>] [--transients] [--unserialize] [--field=<field>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>]
OPTIONS, (*158)
[--search=<pattern>]
Use wildcards ( * and ? ) to match option name.
[--exclude=<pattern>]
Pattern to exclude. Use wildcards ( * and ? ) to match option name.
[--autoload=<value>]
Match only autoload options when value is on, and only not-autoload option when off.
[--transients]
List only transients. Use `--no-transients` to ignore all transients.
[--unserialize]
Unserialize option values in output.
[--field=<field>]
Prints the value of a single field.
[--fields=<fields>]
Limit the output to specific object fields.
[--format=<format>]
The serialization format for the value. total_bytes displays the total size of matching options in bytes.
---
default: table
options:
- table
- json
- csv
- count
- yaml
- total_bytes
---
[--orderby=<fields>]
Set orderby which field.
---
default: option_id
options:
- option_id
- option_name
- option_value
---
[--order=<order>]
Set ascending or descending order.
---
default: asc
options:
- asc
- desc
---
AVAILABLE FIELDS, (*159)
This field will be displayed by default for each matching option:, (*160)
These fields are optionally available:, (*161)
EXAMPLES, (*162)
# Get the total size of all autoload options.
$ wp option list --autoload=on --format=total_bytes
33198
# Find biggest transients.
$ wp option list --search="*_transient_*" --fields=option_name,size_bytes | sort -n -k 2 | tail
option_name size_bytes
_site_transient_timeout_theme_roots 10
_site_transient_theme_roots 76
_site_transient_update_themes 181
_site_transient_update_core 808
_site_transient_update_plugins 6645
# List all options beginning with "i2f_".
$ wp option list --search="i2f_*"
+-------------+--------------+
| option_name | option_value |
+-------------+--------------+
| i2f_version | 0.1.0 |
+-------------+--------------+
# Delete all options beginning with "theme_mods_".
$ wp option list --search="theme_mods_*" --field=option_name | xargs -I % wp option delete %
Success: Deleted 'theme_mods_twentysixteen' option.
Success: Deleted 'theme_mods_twentyfifteen' option.
Success: Deleted 'theme_mods_twentyfourteen' option.
wp option patch
Updates a nested value in an option., (*163)
wp option patch <action> <key> <key-path>... [<value>] [--format=<format>]
OPTIONS, (*164)
<action>
Patch action to perform.
---
options:
- insert
- update
- delete
---
<key>
The option name.
<key-path>...
The name(s) of the keys within the value to locate the value to patch.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
EXAMPLES, (*165)
# Add 'bar' to the 'foo' key on an option with name 'option_name'
$ wp option patch insert option_name foo bar
Success: Updated 'option_name' option.
# Update the value of 'foo' key to 'new' on an option with name 'option_name'
$ wp option patch update option_name foo new
Success: Updated 'option_name' option.
# Set nested value of 'bar' key to value we have in the patch file on an option with name 'option_name'.
$ wp option patch update option_name foo bar < patch
Success: Updated 'option_name' option.
# Update the value for the key 'not-a-key' which is not exist on an option with name 'option_name'.
$ wp option patch update option_name foo not-a-key new-value
Error: No data exists for key "not-a-key"
# Update the value for the key 'foo' without passing value on an option with name 'option_name'.
$ wp option patch update option_name foo
Error: Please provide value to update.
# Delete the nested key 'bar' under 'foo' key on an option with name 'option_name'.
$ wp option patch delete option_name foo bar
Success: Updated 'option_name' option.
wp option pluck
Gets a nested value from an option., (*166)
wp option pluck <key> <key-path>... [--format=<format>]
OPTIONS, (*167)
<key>
The option name.
<key-path>...
The name(s) of the keys within the value to locate the value to pluck.
[--format=<format>]
The output format of the value.
---
default: plaintext
options:
- plaintext
- json
- yaml
---
wp option update
Updates an option value., (*168)
wp option update <key> [<value>] [--autoload=<autoload>] [--format=<format>]
OPTIONS, (*169)
<key>
The name of the option to update.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--autoload=<autoload>]
Requires WP 4.2. Should this option be automatically loaded.
---
options:
- 'on'
- 'off'
- 'yes'
- 'no'
---
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
EXAMPLES, (*170)
# Update an option by reading from a file.
$ wp option update my_option < value.txt
Success: Updated 'my_option' option.
# Update one option on multiple sites using xargs.
$ wp site list --field=url | xargs -n1 -I {} sh -c 'wp --url={} option update my_option my_value'
Success: Updated 'my_option' option.
Success: Updated 'my_option' option.
# Update site blog name.
$ wp option update blogname "Random blog name"
Success: Updated 'blogname' option.
# Update site blog description.
$ wp option update blogdescription "Some random blog description"
Success: Updated 'blogdescription' option.
# Update admin email address.
$ wp option update admin_email someone@example.com
Success: Updated 'admin_email' option.
# Set the default role.
$ wp option update default_role author
Success: Updated 'default_role' option.
# Set the timezone string.
$ wp option update timezone_string "America/New_York"
Success: Updated 'timezone_string' option.
wp option set-autoload
Sets the 'autoload' value for an option., (*171)
wp option set-autoload <key> <autoload>
OPTIONS, (*172)
<key>
The name of the option to set 'autoload' for.
<autoload>
Should this option be automatically loaded.
---
options:
- 'on'
- 'off'
- 'yes'
- 'no'
---
EXAMPLES, (*173)
# Set the 'autoload' value for an option.
$ wp option set-autoload abc_options no
Success: Updated autoload value for 'abc_options' option.
wp option get-autoload
Gets the 'autoload' value for an option., (*174)
wp option get-autoload <key>
OPTIONS, (*175)
<key>
The name of the option to get 'autoload' of.
EXAMPLES, (*176)
# Get the 'autoload' value for an option.
$ wp option get-autoload blogname
yes
wp post
Manages posts, content, and meta., (*177)
wp post
EXAMPLES, (*178)
# Create a new post.
$ wp post create --post_type=post --post_title='A sample post'
Success: Created post 123.
# Update an existing post.
$ wp post update 123 --post_status=draft
Success: Updated post 123.
# Delete an existing post.
$ wp post delete 123
Success: Trashed post 123.
wp post create
Creates a new post., (*179)
wp post create [--post_author=<post_author>] [--post_date=<post_date>] [--post_date_gmt=<post_date_gmt>] [--post_content=<post_content>] [--post_content_filtered=<post_content_filtered>] [--post_title=<post_title>] [--post_excerpt=<post_excerpt>] [--post_status=<post_status>] [--post_type=<post_type>] [--comment_status=<comment_status>] [--ping_status=<ping_status>] [--post_password=<post_password>] [--post_name=<post_name>] [--from-post=<post_id>] [--to_ping=<to_ping>] [--pinged=<pinged>] [--post_modified=<post_modified>] [--post_modified_gmt=<post_modified_gmt>] [--post_parent=<post_parent>] [--menu_order=<menu_order>] [--post_mime_type=<post_mime_type>] [--guid=<guid>] [--post_category=<post_category>] [--tags_input=<tags_input>] [--tax_input=<tax_input>] [--meta_input=<meta_input>] [<file>] [--<field>=<value>] [--edit] [--porcelain]
OPTIONS, (*180)
[--post_author=<post_author>]
The ID of the user who added the post. Default is the current user ID.
[--post_date=<post_date>]
The date of the post. Default is the current time.
[--post_date_gmt=<post_date_gmt>]
The date of the post in the GMT timezone. Default is the value of $post_date.
[--post_content=<post_content>]
The post content. Default empty.
[--post_content_filtered=<post_content_filtered>]
The filtered post content. Default empty.
[--post_title=<post_title>]
The post title. Default empty.
[--post_excerpt=<post_excerpt>]
The post excerpt. Default empty.
[--post_status=<post_status>]
The post status. Default 'draft'.
[--post_type=<post_type>]
The post type. Default 'post'.
[--comment_status=<comment_status>]
Whether the post can accept comments. Accepts 'open' or 'closed'. Default is the value of 'default_comment_status' option.
[--ping_status=<ping_status>]
Whether the post can accept pings. Accepts 'open' or 'closed'. Default is the value of 'default_ping_status' option.
[--post_password=<post_password>]
The password to access the post. Default empty.
[--post_name=<post_name>]
The post name. Default is the sanitized post title when creating a new post.
[--from-post=<post_id>]
Post id of a post to be duplicated.
[--to_ping=<to_ping>]
Space or carriage return-separated list of URLs to ping. Default empty.
[--pinged=<pinged>]
Space or carriage return-separated list of URLs that have been pinged. Default empty.
[--post_modified=<post_modified>]
The date when the post was last modified. Default is the current time.
[--post_modified_gmt=<post_modified_gmt>]
The date when the post was last modified in the GMT timezone. Default is the current time.
[--post_parent=<post_parent>]
Set this for the post it belongs to, if any. Default 0.
[--menu_order=<menu_order>]
The order the post should be displayed in. Default 0.
[--post_mime_type=<post_mime_type>]
The mime type of the post. Default empty.
[--guid=<guid>]
Global Unique ID for referencing the post. Default empty.
[--post_category=<post_category>]
Array of category names, slugs, or IDs. Defaults to value of the 'default_category' option.
[--tags_input=<tags_input>]
Array of tag names, slugs, or IDs. Default empty.
[--tax_input=<tax_input>]
Array of taxonomy terms keyed by their taxonomy name. Default empty.
[--meta_input=<meta_input>]
Array in JSON format of post meta values keyed by their post meta key. Default empty.
[<file>]
Read post content from <file>. If this value is present, the
`--post_content` argument will be ignored.
Passing -
as the filename will cause post content to
be read from STDIN., (*181)
[--<field>=<value>]
Associative args for the new post. See wp_insert_post().
[--edit]
Immediately open system's editor to write or edit post content.
If content is read from a file, from STDIN, or from the --post_content
argument, that text will be loaded into the editor., (*182)
[--porcelain]
Output just the new post id.
EXAMPLES, (*183)
# Create post and schedule for future
$ wp post create --post_type=post --post_title='A future post' --post_status=future --post_date='2030-12-01 07:00:00'
Success: Created post 1921.
# Create post with content from given file
$ wp post create ./post-content.txt --post_category=201,345 --post_title='Post from file'
Success: Created post 1922.
# Create a post with multiple meta values.
$ wp post create --post_title='A post' --post_content='Just a small post.' --meta_input='{"key1":"value1","key2":"value2"}'
Success: Created post 1923.
# Create a duplicate post from existing posts.
$ wp post create --from-post=123 --post_title='Different Title'
Success: Created post 2350.
wp post delete
Deletes an existing post., (*184)
wp post delete <id>... [--force] [--defer-term-counting]
OPTIONS, (*185)
<id>...
One or more IDs of posts to delete.
[--force]
Skip the trash bin.
[--defer-term-counting]
Recalculate term count in batch, for a performance boost.
EXAMPLES, (*186)
# Delete post skipping trash
$ wp post delete 123 --force
Success: Deleted post 123.
# Delete multiple posts
$ wp post delete 123 456 789
Success: Trashed post 123.
Success: Trashed post 456.
Success: Trashed post 789.
# Delete all pages
$ wp post delete $(wp post list --post_type='page' --format=ids)
Success: Trashed post 1164.
Success: Trashed post 1186.
# Delete all posts in the trash
$ wp post delete $(wp post list --post_status=trash --format=ids)
Success: Deleted post 1268.
Success: Deleted post 1294.
wp post edit
Launches system editor to edit post content., (*187)
wp post edit <id>
OPTIONS, (*188)
<id>
The ID of the post to edit.
EXAMPLES, (*189)
# Launch system editor to edit post
$ wp post edit 123
wp post exists
Verifies whether a post exists., (*190)
wp post exists <id>
Displays a success message if the post does exist., (*191)
OPTIONS, (*192)
<id>
The ID of the post to check.
EXAMPLES, (*193)
# The post exists.
$ wp post exists 1337
Success: Post with ID 1337 exists.
$ echo $?
0
# The post does not exist.
$ wp post exists 10000
$ echo $?
1
wp post generate
Generates some posts., (*194)
wp post generate [--count=<number>] [--post_type=<type>] [--post_status=<status>] [--post_title=<post_title>] [--post_author=<login>] [--post_date=<yyyy-mm-dd-hh-ii-ss>] [--post_date_gmt=<yyyy-mm-dd-hh-ii-ss>] [--post_content] [--max_depth=<number>] [--format=<format>]
Creates a specified number of new posts with dummy data., (*195)
OPTIONS, (*196)
[--count=<number>]
How many posts to generate?
---
default: 100
---
[--post_type=<type>]
The type of the generated posts.
---
default: post
---
[--post_status=<status>]
The status of the generated posts.
---
default: publish
---
[--post_title=<post_title>]
The post title.
---
default:
---
[--post_author=<login>]
The author of the generated posts.
---
default:
---
[--post_date=<yyyy-mm-dd-hh-ii-ss>]
The date of the post. Default is the current time.
[--post_date_gmt=<yyyy-mm-dd-hh-ii-ss>]
The date of the post in the GMT timezone. Default is the value of --post_date.
[--post_content]
If set, the command reads the post_content from STDIN.
[--max_depth=<number>]
For hierarchical post types, generate child posts down to a certain depth.
---
default: 1
---
[--format=<format>]
Render output in a particular format.
---
default: progress
options:
- progress
- ids
---
EXAMPLES, (*197)
# Generate posts.
$ wp post generate --count=10 --post_type=page --post_date=1999-01-04
Generating posts 100% [================================================] 0:01 / 0:04
# Generate posts with fetched content.
$ curl -N https://loripsum.net/api/5 | wp post generate --post_content --count=10
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2509 100 2509 0 0 616 0 0:00:04 0:00:04 --:--:-- 616
Generating posts 100% [================================================] 0:01 / 0:04
# Add meta to every generated posts.
$ wp post generate --format=ids | xargs -d ' ' -I % wp post meta add % foo bar
Success: Added custom field.
Success: Added custom field.
Success: Added custom field.
wp post get
Gets details about a post., (*198)
wp post get <id> [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*199)
<id>
The ID of the post to get.
[--field=<field>]
Instead of returning the whole post, returns the value of a single field.
[--fields=<fields>]
Limit the output to specific fields. Defaults to all fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
---
EXAMPLES, (*200)
# Save the post content to a file
$ wp post get 123 --field=content > file.txt
wp post list
Gets a list of posts., (*201)
wp post list [--<field>=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>]
Display posts based on all arguments supported by WP_Query().
Only shows post types marked as post by default., (*202)
OPTIONS, (*203)
[--<field>=<value>]
One or more args to pass to WP_Query.
[--field=<field>]
Prints the value of a single field for each post.
[--fields=<fields>]
Limit the output to specific object fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- ids
- json
- count
- yaml
---
AVAILABLE FIELDS, (*204)
These fields will be displayed by default for each post:, (*205)
- ID
- post_title
- post_name
- post_date
- post_status
These fields are optionally available:, (*206)
- post_author
- post_date_gmt
- post_content
- post_excerpt
- comment_status
- ping_status
- post_password
- to_ping
- pinged
- post_modified
- post_modified_gmt
- post_content_filtered
- post_parent
- guid
- menu_order
- post_type
- post_mime_type
- comment_count
- filter
- url
EXAMPLES, (*207)
# List post
$ wp post list --field=ID
568
829
1329
1695
# List posts in JSON
$ wp post list --post_type=post --posts_per_page=5 --format=json
[{"ID":1,"post_title":"Hello world!","post_name":"hello-world","post_date":"2015-06-20 09:00:10","post_status":"publish"},{"ID":1178,"post_title":"Markup: HTML Tags and Formatting","post_name":"markup-html-tags-and-formatting","post_date":"2013-01-11 20:22:19","post_status":"draft"}]
# List all pages
$ wp post list --post_type=page --fields=post_title,post_status
+-------------+-------------+
| post_title | post_status |
+-------------+-------------+
| Sample Page | publish |
+-------------+-------------+
# List ids of all pages and posts
$ wp post list --post_type=page,post --format=ids
15 25 34 37 198
# List given posts
$ wp post list --post__in=1,3
+----+--------------+-------------+---------------------+-------------+
| ID | post_title | post_name | post_date | post_status |
+----+--------------+-------------+---------------------+-------------+
| 3 | Lorem Ipsum | lorem-ipsum | 2016-06-01 14:34:36 | publish |
| 1 | Hello world! | hello-world | 2016-06-01 14:31:12 | publish |
+----+--------------+-------------+---------------------+-------------+
# List given post by a specific author
$ wp post list --author=2
+----+-------------------+-------------------+---------------------+-------------+
| ID | post_title | post_name | post_date | post_status |
+----+-------------------+-------------------+---------------------+-------------+
| 14 | New documentation | new-documentation | 2021-06-18 21:05:11 | publish |
+----+-------------------+-------------------+---------------------+-------------+
wp post meta
Adds, updates, deletes, and lists post custom fields., (*208)
wp post meta
EXAMPLES, (*209)
# Set post meta
$ wp post meta set 123 _wp_page_template about.php
Success: Updated custom field '_wp_page_template'.
# Get post meta
$ wp post meta get 123 _wp_page_template
about.php
# Update post meta
$ wp post meta update 123 _wp_page_template contact.php
Success: Updated custom field '_wp_page_template'.
# Delete post meta
$ wp post meta delete 123 _wp_page_template
Success: Deleted custom field.
wp post meta add
Add a meta field., (*210)
wp post meta add <id> <key> [<value>] [--format=<format>]
OPTIONS, (*211)
<id>
The ID of the object.
<key>
The name of the meta field to create.
[<value>]
The value of the meta field. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
wp post meta clean-duplicates
Cleans up duplicate post meta values on a post., (*212)
wp post meta clean-duplicates <id> <key>
OPTIONS, (*213)
<id>
ID of the post to clean.
<key>
Meta key to clean up.
EXAMPLES, (*214)
# Delete duplicate post meta.
wp post meta clean-duplicates 1234 enclosure
Success: Cleaned up duplicate 'enclosure' meta values.
wp post meta delete
Delete a meta field., (*215)
wp post meta delete <id> [<key>] [<value>] [--all]
OPTIONS, (*216)
<id>
The ID of the object.
[<key>]
The name of the meta field to delete.
[<value>]
The value to delete. If omitted, all rows with key will deleted.
[--all]
Delete all meta for the object.
wp post meta get
Get meta field value., (*217)
wp post meta get <id> <key> [--format=<format>]
OPTIONS, (*218)
<id>
The ID of the object.
<key>
The name of the meta field to get.
[--format=<format>]
Get value in a particular format.
---
default: var_export
options:
- var_export
- json
- yaml
---
wp post meta list
List all metadata associated with an object., (*219)
wp post meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>] [--unserialize]
OPTIONS, (*220)
<id>
ID for the object.
[--keys=<keys>]
Limit output to metadata of specific keys.
[--fields=<fields>]
Limit the output to specific row fields. Defaults to id,meta_key,meta_value.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
- count
---
[--orderby=<fields>]
Set orderby which field.
---
default: id
options:
- id
- meta_key
- meta_value
---
[--order=<order>]
Set ascending or descending order.
---
default: asc
options:
- asc
- desc
---
[--unserialize]
Unserialize meta_value output.
wp post meta patch
Update a nested value for a meta field., (*221)
wp post meta patch <action> <id> <key> <key-path>... [<value>] [--format=<format>]
OPTIONS, (*222)
<action>
Patch action to perform.
---
options:
- insert
- update
- delete
---
<id>
The ID of the object.
<key>
The name of the meta field to update.
<key-path>...
The name(s) of the keys within the value to locate the value to patch.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
wp post meta pluck
Get a nested value from a meta field., (*223)
wp post meta pluck <id> <key> <key-path>... [--format=<format>]
OPTIONS, (*224)
<id>
The ID of the object.
<key>
The name of the meta field to get.
<key-path>...
The name(s) of the keys within the value to locate the value to pluck.
[--format=<format>]
The output format of the value.
---
default: plaintext
options:
- plaintext
- json
- yaml
wp post meta update
Update a meta field., (*225)
wp post meta update <id> <key> [<value>] [--format=<format>]
OPTIONS, (*226)
<id>
The ID of the object.
<key>
The name of the meta field to update.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
wp post term
Adds, updates, removes, and lists post terms., (*227)
wp post term
EXAMPLES, (*228)
# Set category post term `test` to the post ID 123
$ wp post term set 123 test category
Success: Set term.
# Set category post terms `test` and `apple` to the post ID 123
$ wp post term set 123 test apple category
Success: Set terms.
# List category post terms for the post ID 123
$ wp post term list 123 category --fields=term_id,slug
+---------+-------+
| term_id | slug |
+---------+-------+
| 2 | apple |
| 3 | test |
+----------+------+
# Remove category post terms `test` and `apple` for the post ID 123
$ wp post term remove 123 category test apple
Success: Removed terms.
wp post term add
Add a term to an object., (*229)
wp post term add <id> <taxonomy> <term>... [--by=<field>]
Append the term to the existing set of terms on the object., (*230)
OPTIONS, (*231)
<id>
The ID of the object.
<taxonomy>
The name of the taxonomy type to be added.
<term>...
The slug of the term or terms to be added.
[--by=<field>]
Explicitly handle the term value as a slug or id.
---
default: slug
options:
- slug
- id
---
wp post term list
List all terms associated with an object., (*232)
wp post term list <id> <taxonomy>... [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*233)
<id>
ID for the object.
<taxonomy>...
One or more taxonomies to list.
[--field=<field>]
Prints the value of a single field for each term.
[--fields=<fields>]
Limit the output to specific row fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
- count
- ids
---
AVAILABLE FIELDS, (*234)
These fields will be displayed by default for each term:, (*235)
- term_id
- name
- slug
- taxonomy
These fields are optionally available:, (*236)
- term_taxonomy_id
- description
- term_group
- parent
- count
wp post term remove
Remove a term from an object., (*237)
wp post term remove <id> <taxonomy> [<term>...] [--by=<field>] [--all]
OPTIONS, (*238)
<id>
The ID of the object.
<taxonomy>
The name of the term's taxonomy.
[<term>...]
The slug of the term or terms to be removed from the object.
[--by=<field>]
Explicitly handle the term value as a slug or id.
---
default: slug
options:
- slug
- id
---
[--all]
Remove all terms from the object.
wp post term set
Set object terms., (*239)
wp post term set <id> <taxonomy> <term>... [--by=<field>]
Replaces existing terms on the object., (*240)
OPTIONS, (*241)
<id>
The ID of the object.
<taxonomy>
The name of the taxonomy type to be updated.
<term>...
The slug of the term or terms to be updated.
[--by=<field>]
Explicitly handle the term value as a slug or id.
---
default: slug
options:
- slug
- id
---
wp post update
Updates one or more existing posts., (*242)
wp post update <id>... [--post_author=<post_author>] [--post_date=<post_date>] [--post_date_gmt=<post_date_gmt>] [--post_content=<post_content>] [--post_content_filtered=<post_content_filtered>] [--post_title=<post_title>] [--post_excerpt=<post_excerpt>] [--post_status=<post_status>] [--post_type=<post_type>] [--comment_status=<comment_status>] [--ping_status=<ping_status>] [--post_password=<post_password>] [--post_name=<post_name>] [--to_ping=<to_ping>] [--pinged=<pinged>] [--post_modified=<post_modified>] [--post_modified_gmt=<post_modified_gmt>] [--post_parent=<post_parent>] [--menu_order=<menu_order>] [--post_mime_type=<post_mime_type>] [--guid=<guid>] [--post_category=<post_category>] [--tags_input=<tags_input>] [--tax_input=<tax_input>] [--meta_input=<meta_input>] [<file>] --<field>=<value> [--defer-term-counting]
OPTIONS, (*243)
<id>...
One or more IDs of posts to update.
[--post_author=<post_author>]
The ID of the user who added the post. Default is the current user ID.
[--post_date=<post_date>]
The date of the post. Default is the current time.
[--post_date_gmt=<post_date_gmt>]
The date of the post in the GMT timezone. Default is the value of $post_date.
[--post_content=<post_content>]
The post content. Default empty.
[--post_content_filtered=<post_content_filtered>]
The filtered post content. Default empty.
[--post_title=<post_title>]
The post title. Default empty.
[--post_excerpt=<post_excerpt>]
The post excerpt. Default empty.
[--post_status=<post_status>]
The post status. Default 'draft'.
[--post_type=<post_type>]
The post type. Default 'post'.
[--comment_status=<comment_status>]
Whether the post can accept comments. Accepts 'open' or 'closed'. Default is the value of 'default_comment_status' option.
[--ping_status=<ping_status>]
Whether the post can accept pings. Accepts 'open' or 'closed'. Default is the value of 'default_ping_status' option.
[--post_password=<post_password>]
The password to access the post. Default empty.
[--post_name=<post_name>]
The post name. Default is the sanitized post title when creating a new post.
[--to_ping=<to_ping>]
Space or carriage return-separated list of URLs to ping. Default empty.
[--pinged=<pinged>]
Space or carriage return-separated list of URLs that have been pinged. Default empty.
[--post_modified=<post_modified>]
The date when the post was last modified. Default is the current time.
[--post_modified_gmt=<post_modified_gmt>]
The date when the post was last modified in the GMT timezone. Default is the current time.
[--post_parent=<post_parent>]
Set this for the post it belongs to, if any. Default 0.
[--menu_order=<menu_order>]
The order the post should be displayed in. Default 0.
[--post_mime_type=<post_mime_type>]
The mime type of the post. Default empty.
[--guid=<guid>]
Global Unique ID for referencing the post. Default empty.
[--post_category=<post_category>]
Array of category names, slugs, or IDs. Defaults to value of the 'default_category' option.
[--tags_input=<tags_input>]
Array of tag names, slugs, or IDs. Default empty.
[--tax_input=<tax_input>]
Array of taxonomy terms keyed by their taxonomy name. Default empty.
[--meta_input=<meta_input>]
Array in JSON format of post meta values keyed by their post meta key. Default empty.
[<file>]
Read post content from <file>. If this value is present, the
`--post_content` argument will be ignored.
Passing -
as the filename will cause post content to
be read from STDIN., (*244)
--<field>=<value>
One or more fields to update. See wp_insert_post().
[--defer-term-counting]
Recalculate term count in batch, for a performance boost.
EXAMPLES, (*245)
$ wp post update 123 --post_name=something --post_status=draft
Success: Updated post 123.
# Update a post with multiple meta values.
$ wp post update 123 --meta_input='{"key1":"value1","key2":"value2"}'
Success: Updated post 123.
# Update multiple posts at once.
$ wp post update 123 456 --post_author=789
Success: Updated post 123.
Success: Updated post 456.
# Update all posts of a given post type at once.
$ wp post update $(wp post list --post_type=page --format=ids) --post_author=123
Success: Updated post 123.
Success: Updated post 456.
wp post url-to-id
Gets the post ID for a given URL., (*246)
wp post url-to-id <url>
OPTIONS, (*247)
<url>
The URL of the post to get.
EXAMPLES, (*248)
# Get post ID by URL
$ wp post url-to-id https://example.com/?p=1
1
wp post-type
Retrieves details on the site's registered post types., (*249)
wp post-type
Get information on WordPress' built-in and the site's custom post types., (*250)
EXAMPLES, (*251)
# Get details about a post type
$ wp post-type get page --fields=name,label,hierarchical --format=json
{"name":"page","label":"Pages","hierarchical":true}
# List post types with 'post' capability type
$ wp post-type list --capability_type=post --fields=name,public
+---------------+--------+
| name | public |
+---------------+--------+
| post | 1 |
| attachment | 1 |
| revision | |
| nav_menu_item | |
+---------------+--------+
wp post-type get
Gets details about a registered post type., (*252)
wp post-type get <post-type> [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*253)
<post-type>
Post type slug
[--field=<field>]
Instead of returning the whole taxonomy, returns the value of a single field.
[--fields=<fields>]
Limit the output to specific fields. Defaults to all fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
---
AVAILABLE FIELDS, (*254)
These fields will be displayed by default for the specified post type:, (*255)
- name
- label
- description
- hierarchical
- public
- capability_type
- labels
- cap
- supports
These fields are optionally available:, (*256)
EXAMPLES, (*257)
# Get details about the 'page' post type.
$ wp post-type get page --fields=name,label,hierarchical --format=json
{"name":"page","label":"Pages","hierarchical":true}
wp post-type list
Lists registered post types., (*258)
wp post-type list [--<field>=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*259)
[--<field>=<value>]
Filter by one or more fields (see get_post_types() first parameter for a list of available fields).
[--field=<field>]
Prints the value of a single field for each post type.
[--fields=<fields>]
Limit the output to specific post type fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- count
- yaml
---
AVAILABLE FIELDS, (*260)
These fields will be displayed by default for each post type:, (*261)
- name
- label
- description
- hierarchical
- public
- capability_type
These fields are optionally available:, (*262)
EXAMPLES, (*263)
# List registered post types
$ wp post-type list --format=csv
name,label,description,hierarchical,public,capability_type
post,Posts,,,1,post
page,Pages,,1,1,page
attachment,Media,,,1,post
revision,Revisions,,,,post
nav_menu_item,"Navigation Menu Items",,,,post
# List post types with 'post' capability type
$ wp post-type list --capability_type=post --fields=name,public
+---------------+--------+
| name | public |
+---------------+--------+
| post | 1 |
| attachment | 1 |
| revision | |
| nav_menu_item | |
+---------------+--------+
wp site
Creates, deletes, empties, moderates, and lists one or more sites on a multisite installation., (*264)
wp site
EXAMPLES, (*265)
# Create site
$ wp site create --slug=example
Success: Site 3 created: www.example.com/example/
# Output a simple list of site URLs
$ wp site list --field=url
http://www.example.com/
http://www.example.com/subdir/
# Delete site
$ wp site delete 123
Are you sure you want to delete the 'http://www.example.com/example' site? [y/n] y
Success: The site at 'http://www.example.com/example' was deleted.
wp site activate
Activates one or more sites., (*266)
wp site activate [<id>...] [--slug=<slug>]
OPTIONS, (*267)
[<id>...]
One or more IDs of sites to activate. If not provided, you must set the --slug parameter.
[--slug=<slug>]
Path of the site to be activated. Subdomain on subdomain installs, directory on subdirectory installs.
EXAMPLES, (*268)
$ wp site activate 123
Success: Site 123 activated.
$ wp site activate --slug=demo
Success: Site 123 marked as activated.
wp site archive
Archives one or more sites., (*269)
wp site archive [<id>...] [--slug=<slug>]
OPTIONS, (*270)
[<id>...]
One or more IDs of sites to archive. If not provided, you must set the --slug parameter.
[--slug=<slug>]
Path of the site to archive. Subdomain on subdomain installs, directory on subdirectory installs.
EXAMPLES, (*271)
$ wp site archive 123
Success: Site 123 archived.
$ wp site archive --slug=demo
Success: Site 123 archived.
wp site create
Creates a site in a multisite installation., (*272)
wp site create --slug=<slug> [--title=<title>] [--email=<email>] [--network_id=<network-id>] [--private] [--porcelain]
OPTIONS, (*273)
--slug=<slug>
Path for the new site. Subdomain on subdomain installs, directory on subdirectory installs.
[--title=<title>]
Title of the new site. Default: prettified slug.
[--email=<email>]
Email for admin user. User will be created if none exists. Assignment to super admin if not included.
[--network_id=<network-id>]
Network to associate new site with. Defaults to current network (typically 1).
[--private]
If set, the new site will be non-public (not indexed)
[--porcelain]
If set, only the site id will be output on success.
EXAMPLES, (*274)
$ wp site create --slug=example
Success: Site 3 created: http://www.example.com/example/
wp site generate
Generate some sites., (*275)
wp site generate [--count=<number>] [--slug=<slug>] [--email=<email>] [--network_id=<network-id>] [--private] [--format=<format>]
Creates a specified number of new sites., (*276)
OPTIONS, (*277)
[--count=<number>]
How many sites to generates?
---
default: 100
---
[--slug=<slug>]
Path for the new site. Subdomain on subdomain installs, directory on subdirectory installs.
[--email=<email>]
Email for admin user. User will be created if none exists. Assignment to super admin if not included.
[--network_id=<network-id>]
Network to associate new site with. Defaults to current network (typically 1).
[--private]
If set, the new site will be non-public (not indexed)
[--format=<format>]
Render output in a particular format.
---
default: progress
options:
- progress
- ids
---
EXAMPLES, (*278)
# Generate 10 sites.
$ wp site generate --count=10
Generating sites 100% [================================================] 0:01 / 0:04, (*279)
wp site deactivate
Deactivates one or more sites., (*280)
wp site deactivate [<id>...] [--slug=<slug>]
OPTIONS, (*281)
[<id>...]
One or more IDs of sites to deactivate. If not provided, you must set the --slug parameter.
[--slug=<slug>]
Path of the site to be deactivated. Subdomain on subdomain installs, directory on subdirectory installs.
EXAMPLES, (*282)
$ wp site deactivate 123
Success: Site 123 deactivated.
$ wp site deactivate --slug=demo
Success: Site 123 deactivated.
wp site delete
Deletes a site in a multisite installation., (*283)
wp site delete [<site-id>] [--slug=<slug>] [--yes] [--keep-tables]
OPTIONS, (*284)
[<site-id>]
The id of the site to delete. If not provided, you must set the --slug parameter.
[--slug=<slug>]
Path of the site to be deleted. Subdomain on subdomain installs, directory on subdirectory installs.
[--yes]
Answer yes to the confirmation message.
[--keep-tables]
Delete the blog from the list, but don't drop its tables.
EXAMPLES, (*285)
$ wp site delete 123
Are you sure you want to delete the http://www.example.com/example site? [y/n] y
Success: The site at 'http://www.example.com/example' was deleted.
wp site empty
Empties a site of its content (posts, comments, terms, and meta)., (*286)
wp site empty [--uploads] [--yes]
Truncates posts, comments, and terms tables to empty a site of its
content. Doesn't affect site configuration (options) or users., (*287)
If running a persistent object cache, make sure to flush the cache
after emptying the site, as the cache values will be invalid otherwise., (*288)
To also empty custom database tables, you'll need to hook into command
execution:, (*289)
WP_CLI::add_hook( 'after_invoke:site empty', function(){
global $wpdb;
foreach( array( 'p2p', 'p2pmeta' ) as $table ) {
$table = $wpdb->$table;
$wpdb->query( "TRUNCATE $table" );
}
});
OPTIONS, (*290)
[--uploads]
Also delete *all* files in the site's uploads directory.
[--yes]
Proceed to empty the site without a confirmation prompt.
EXAMPLES, (*291)
$ wp site empty
Are you sure you want to empty the site at http://www.example.com of all posts, links, comments, and terms? [y/n] y
Success: The site at 'http://www.example.com' was emptied.
wp site list
Lists all sites in a multisite installation., (*292)
wp site list [--network=<id>] [--<field>=<value>] [--site__in=<value>] [--site_user=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*293)
[--network=<id>]
The network to which the sites belong.
[--<field>=<value>]
Filter by one or more fields (see "Available Fields" section). However,
'url' isn't an available filter, as it comes from 'home' in wp_options.
[--site__in=<value>]
Only list the sites with these blog_id values (comma-separated).
[--site_user=<value>]
Only list the sites with this user.
[--field=<field>]
Prints the value of a single field for each site.
[--fields=<fields>]
Comma-separated list of fields to show.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- count
- ids
- json
- yaml
---
AVAILABLE FIELDS, (*294)
These fields will be displayed by default for each site:, (*295)
- blog_id
- url
- last_updated
- registered
These fields are optionally available:, (*296)
- site_id
- domain
- path
- public
- archived
- mature
- spam
- deleted
- lang_id
EXAMPLES, (*297)
# Output a simple list of site URLs
$ wp site list --field=url
http://www.example.com/
http://www.example.com/subdir/
wp site mature
Sets one or more sites as mature., (*298)
wp site mature [<id>...] [--slug=<slug>]
OPTIONS, (*299)
[<id>...]
One or more IDs of sites to set as mature. If not provided, you must set the --slug parameter.
[--slug=<slug>]
Path of the site to be set as mature. Subdomain on subdomain installs, directory on subdirectory installs.
EXAMPLES, (*300)
$ wp site mature 123
Success: Site 123 marked as mature.
$ wp site mature --slug=demo
Success: Site 123 marked as mature.
Adds, updates, deletes, and lists site custom fields., (*301)
wp site meta
EXAMPLES, (*302)
# Set site meta
$ wp site meta set 123 bio "Mary is a WordPress developer."
Success: Updated custom field 'bio'.
# Get site meta
$ wp site meta get 123 bio
Mary is a WordPress developer.
# Update site meta
$ wp site meta update 123 bio "Mary is an awesome WordPress developer."
Success: Updated custom field 'bio'.
# Delete site meta
$ wp site meta delete 123 bio
Success: Deleted custom field.
Add a meta field., (*303)
wp site meta add <id> <key> [<value>] [--format=<format>]
OPTIONS, (*304)
<id>
The ID of the object.
<key>
The name of the meta field to create.
[<value>]
The value of the meta field. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
Delete a meta field., (*305)
wp site meta delete <id> [<key>] [<value>] [--all]
OPTIONS, (*306)
<id>
The ID of the object.
[<key>]
The name of the meta field to delete.
[<value>]
The value to delete. If omitted, all rows with key will deleted.
[--all]
Delete all meta for the object.
Get meta field value., (*307)
wp site meta get <id> <key> [--format=<format>]
OPTIONS, (*308)
<id>
The ID of the object.
<key>
The name of the meta field to get.
[--format=<format>]
Get value in a particular format.
---
default: var_export
options:
- var_export
- json
- yaml
---
List all metadata associated with an object., (*309)
wp site meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>] [--unserialize]
OPTIONS, (*310)
<id>
ID for the object.
[--keys=<keys>]
Limit output to metadata of specific keys.
[--fields=<fields>]
Limit the output to specific row fields. Defaults to id,meta_key,meta_value.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
- count
---
[--orderby=<fields>]
Set orderby which field.
---
default: id
options:
- id
- meta_key
- meta_value
---
[--order=<order>]
Set ascending or descending order.
---
default: asc
options:
- asc
- desc
---
[--unserialize]
Unserialize meta_value output.
Update a nested value for a meta field., (*311)
wp site meta patch <action> <id> <key> <key-path>... [<value>] [--format=<format>]
OPTIONS, (*312)
<action>
Patch action to perform.
---
options:
- insert
- update
- delete
---
<id>
The ID of the object.
<key>
The name of the meta field to update.
<key-path>...
The name(s) of the keys within the value to locate the value to patch.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
Get a nested value from a meta field., (*313)
wp site meta pluck <id> <key> <key-path>... [--format=<format>]
OPTIONS, (*314)
<id>
The ID of the object.
<key>
The name of the meta field to get.
<key-path>...
The name(s) of the keys within the value to locate the value to pluck.
[--format=<format>]
The output format of the value.
---
default: plaintext
options:
- plaintext
- json
- yaml
Update a meta field., (*315)
wp site meta update <id> <key> [<value>] [--format=<format>]
OPTIONS, (*316)
<id>
The ID of the object.
<key>
The name of the meta field to update.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
wp site option
Adds, updates, deletes, and lists site options in a multisite installation., (*317)
wp site option
EXAMPLES, (*318)
# Get site registration
$ wp site option get registration
none
# Add site option
$ wp site option add my_option foobar
Success: Added 'my_option' site option.
# Update site option
$ wp site option update my_option '{"foo": "bar"}' --format=json
Success: Updated 'my_option' site option.
# Delete site option
$ wp site option delete my_option
Success: Deleted 'my_option' site option.
wp site private
Sets one or more sites as private., (*319)
wp site private [<id>...] [--slug=<slug>]
OPTIONS, (*320)
[<id>...]
One or more IDs of sites to set as private. If not provided, you must set the --slug parameter.
[--slug=<slug>]
Path of the site to be set as private. Subdomain on subdomain installs, directory on subdirectory installs.
EXAMPLES, (*321)
$ wp site private 123
Success: Site 123 marked as private.
$ wp site private --slug=demo
Success: Site 123 marked as private.
wp site public
Sets one or more sites as public., (*322)
wp site public [<id>...] [--slug=<slug>]
OPTIONS, (*323)
[<id>...]
One or more IDs of sites to set as public. If not provided, you must set the --slug parameter.
[--slug=<slug>]
Path of the site to be set as public. Subdomain on subdomain installs, directory on subdirectory installs.
EXAMPLES, (*324)
$ wp site public 123
Success: Site 123 marked as public.
$ wp site public --slug=demo
Success: Site 123 marked as public.
wp site spam
Marks one or more sites as spam., (*325)
wp site spam [<id>...] [--slug=<slug>]
OPTIONS, (*326)
[<id>...]
One or more IDs of sites to be marked as spam. If not provided, you must set the --slug parameter.
[--slug=<slug>]
Path of the site to be marked as spam. Subdomain on subdomain installs, directory on subdirectory installs.
EXAMPLES, (*327)
$ wp site spam 123
Success: Site 123 marked as spam.
wp site unarchive
Unarchives one or more sites., (*328)
wp site unarchive [<id>...] [--slug=<slug>]
OPTIONS, (*329)
[<id>...]
One or more IDs of sites to unarchive. If not provided, you must set the --slug parameter.
[--slug=<slug>]
Path of the site to unarchive. Subdomain on subdomain installs, directory on subdirectory installs.
EXAMPLES, (*330)
$ wp site unarchive 123
Success: Site 123 unarchived.
$ wp site unarchive --slug=demo
Success: Site 123 unarchived.
wp site unmature
Sets one or more sites as immature., (*331)
wp site unmature [<id>...] [--slug=<slug>]
OPTIONS, (*332)
[<id>...]
One or more IDs of sites to set as unmature. If not provided, you must set the --slug parameter.
[--slug=<slug>]
Path of the site to be set as unmature. Subdomain on subdomain installs, directory on subdirectory installs.
EXAMPLES, (*333)
$ wp site unmature 123
Success: Site 123 marked as unmature.
$ wp site unmature --slug=demo
Success: Site 123 marked as unmature.
wp site unspam
Removes one or more sites from spam., (*334)
wp site unspam [<id>...] [--slug=<slug>]
OPTIONS, (*335)
[<id>...]
One or more IDs of sites to remove from spam. If not provided, you must set the --slug parameter.
[--slug=<slug>]
Path of the site to be removed from spam. Subdomain on subdomain installs, directory on subdirectory installs.
EXAMPLES, (*336)
$ wp site unspam 123
Success: Site 123 removed from spam.
wp taxonomy
Retrieves information about registered taxonomies., (*337)
wp taxonomy
See references for built-in taxonomies and custom taxonomies., (*338)
EXAMPLES, (*339)
# List all taxonomies with 'post' object type.
$ wp taxonomy list --object_type=post --fields=name,public
+-------------+--------+
| name | public |
+-------------+--------+
| category | 1 |
| post_tag | 1 |
| post_format | 1 |
+-------------+--------+
# Get capabilities of 'post_tag' taxonomy.
$ wp taxonomy get post_tag --field=cap
{"manage_terms":"manage_categories","edit_terms":"manage_categories","delete_terms":"manage_categories","assign_terms":"edit_posts"}
wp taxonomy get
Gets details about a registered taxonomy., (*340)
wp taxonomy get <taxonomy> [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*341)
<taxonomy>
Taxonomy slug.
[--field=<field>]
Instead of returning the whole taxonomy, returns the value of a single field.
[--fields=<fields>]
Limit the output to specific fields. Defaults to all fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
---
AVAILABLE FIELDS, (*342)
These fields will be displayed by default for the specified taxonomy:, (*343)
- name
- label
- description
- object_type
- show_tagcloud
- hierarchical
- public
- labels
- cap
These fields are optionally available:, (*344)
EXAMPLES, (*345)
# Get details of `category` taxonomy.
$ wp taxonomy get category --fields=name,label,object_type
+-------------+------------+
| Field | Value |
+-------------+------------+
| name | category |
| label | Categories |
| object_type | ["post"] |
+-------------+------------+
# Get capabilities of 'post_tag' taxonomy.
$ wp taxonomy get post_tag --field=cap
{"manage_terms":"manage_categories","edit_terms":"manage_categories","delete_terms":"manage_categories","assign_terms":"edit_posts"}
wp taxonomy list
Lists registered taxonomies., (*346)
wp taxonomy list [--<field>=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*347)
[--<field>=<value>]
Filter by one or more fields (see get_taxonomies() first parameter for a list of available fields).
[--field=<field>]
Prints the value of a single field for each taxonomy.
[--fields=<fields>]
Limit the output to specific taxonomy fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- count
- yaml
---
AVAILABLE FIELDS, (*348)
These fields will be displayed by default for each term:, (*349)
- name
- label
- description
- object_type
- show_tagcloud
- hierarchical
- public
These fields are optionally available:, (*350)
EXAMPLES, (*351)
# List all taxonomies.
$ wp taxonomy list --format=csv
name,label,description,object_type,show_tagcloud,hierarchical,public
category,Categories,,post,1,1,1
post_tag,Tags,,post,1,,1
nav_menu,"Navigation Menus",,nav_menu_item,,,
link_category,"Link Categories",,link,1,,
post_format,Format,,post,,,1
# List all taxonomies with 'post' object type.
$ wp taxonomy list --object_type=post --fields=name,public
+-------------+--------+
| name | public |
+-------------+--------+
| category | 1 |
| post_tag | 1 |
| post_format | 1 |
+-------------+--------+
wp term
Manages taxonomy terms and term meta, with create, delete, and list commands., (*352)
wp term
See reference for taxonomies and their terms., (*353)
EXAMPLES, (*354)
# Create a new term.
$ wp term create category Apple --description="A type of fruit"
Success: Created category 199.
# Get details about a term.
$ wp term get category 199 --format=json --fields=term_id,name,slug,count
{"term_id":199,"name":"Apple","slug":"apple","count":1}
# Update an existing term.
$ wp term update category 15 --name=Apple
Success: Term updated.
# Get the term's URL.
$ wp term list post_tag --include=123 --field=url
http://example.com/tag/tips-and-tricks
# Delete post category
$ wp term delete category 15
Success: Deleted category 15.
# Recount posts assigned to each categories and tags
$ wp term recount category post_tag
Success: Updated category term count
Success: Updated post_tag term count
wp term create
Creates a new term., (*355)
wp term create <taxonomy> <term> [--slug=<slug>] [--description=<description>] [--parent=<term-id>] [--porcelain]
OPTIONS, (*356)
<taxonomy>
Taxonomy for the new term.
<term>
A name for the new term.
[--slug=<slug>]
A unique slug for the new term. Defaults to sanitized version of name.
[--description=<description>]
A description for the new term.
[--parent=<term-id>]
A parent for the new term.
[--porcelain]
Output just the new term id.
EXAMPLES, (*357)
# Create a new category "Apple" with a description.
$ wp term create category Apple --description="A type of fruit"
Success: Created category 199.
wp term delete
Deletes an existing term., (*358)
wp term delete <taxonomy> <term>... [--by=<field>]
Errors if the term doesn't exist, or there was a problem in deleting it., (*359)
OPTIONS, (*360)
<taxonomy>
Taxonomy of the term to delete.
<term>...
One or more IDs or slugs of terms to delete.
[--by=<field>]
Explicitly handle the term value as a slug or id.
---
default: id
options:
- slug
- id
---
EXAMPLES, (*361)
# Delete post category by id
$ wp term delete category 15
Deleted category 15.
Success: Deleted 1 of 1 terms.
# Delete post category by slug
$ wp term delete category apple --by=slug
Deleted category 15.
Success: Deleted 1 of 1 terms.
# Delete all post tags
$ wp term list post_tag --field=term_id | xargs wp term delete post_tag
Deleted post_tag 159.
Deleted post_tag 160.
Deleted post_tag 161.
Success: Deleted 3 of 3 terms.
wp term generate
Generates some terms., (*362)
wp term generate <taxonomy> [--count=<number>] [--max_depth=<number>] [--format=<format>]
Creates a specified number of new terms with dummy data., (*363)
OPTIONS, (*364)
<taxonomy>
The taxonomy for the generated terms.
[--count=<number>]
How many terms to generate?
---
default: 100
---
[--max_depth=<number>]
Generate child terms down to a certain depth.
---
default: 1
---
[--format=<format>]
Render output in a particular format.
---
default: progress
options:
- progress
- ids
---
EXAMPLES, (*365)
# Generate post categories.
$ wp term generate category --count=10
Generating terms 100% [=========] 0:02 / 0:02
# Add meta to every generated term.
$ wp term generate category --format=ids --count=3 | xargs -d ' ' -I % wp term meta add % foo bar
Success: Added custom field.
Success: Added custom field.
Success: Added custom field.
wp term get
Gets details about a term., (*366)
wp term get <taxonomy> <term> [--by=<field>] [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*367)
<taxonomy>
Taxonomy of the term to get
<term>
ID or slug of the term to get
[--by=<field>]
Explicitly handle the term value as a slug or id.
---
default: id
options:
- slug
- id
---
[--field=<field>]
Instead of returning the whole term, returns the value of a single field.
[--fields=<fields>]
Limit the output to specific fields. Defaults to all fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
---
EXAMPLES, (*368)
# Get details about a category with id 199.
$ wp term get category 199 --format=json
{"term_id":199,"name":"Apple","slug":"apple","term_group":0,"term_taxonomy_id":199,"taxonomy":"category","description":"A type of fruit","parent":0,"count":0,"filter":"raw"}
# Get details about a category with slug apple.
$ wp term get category apple --by=slug --format=json
{"term_id":199,"name":"Apple","slug":"apple","term_group":0,"term_taxonomy_id":199,"taxonomy":"category","description":"A type of fruit","parent":0,"count":0,"filter":"raw"}
wp term list
Lists terms in a taxonomy., (*369)
wp term list <taxonomy>... [--<field>=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*370)
<taxonomy>...
List terms of one or more taxonomies
[--<field>=<value>]
Filter by one or more fields (see get_terms() $args parameter for a list of fields).
[--field=<field>]
Prints the value of a single field for each term.
[--fields=<fields>]
Limit the output to specific object fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- ids
- json
- count
- yaml
---
AVAILABLE FIELDS, (*371)
These fields will be displayed by default for each term:, (*372)
- term_id
- term_taxonomy_id
- name
- slug
- description
- parent
- count
These fields are optionally available:, (*373)
EXAMPLES, (*374)
# List post categories
$ wp term list category --format=csv
term_id,term_taxonomy_id,name,slug,description,parent,count
2,2,aciform,aciform,,0,1
3,3,antiquarianism,antiquarianism,,0,1
4,4,arrangement,arrangement,,0,1
5,5,asmodeus,asmodeus,,0,1
# List post tags
$ wp term list post_tag --fields=name,slug
+-----------+-------------+
| name | slug |
+-----------+-------------+
| 8BIT | 8bit |
| alignment | alignment-2 |
| Articles | articles |
| aside | aside |
+-----------+-------------+
Adds, updates, deletes, and lists term custom fields., (*375)
wp term meta
EXAMPLES, (*376)
# Set term meta
$ wp term meta set 123 bio "Mary is a WordPress developer."
Success: Updated custom field 'bio'.
# Get term meta
$ wp term meta get 123 bio
Mary is a WordPress developer.
# Update term meta
$ wp term meta update 123 bio "Mary is an awesome WordPress developer."
Success: Updated custom field 'bio'.
# Delete term meta
$ wp term meta delete 123 bio
Success: Deleted custom field.
Add a meta field., (*377)
wp term meta add <id> <key> [<value>] [--format=<format>]
OPTIONS, (*378)
<id>
The ID of the object.
<key>
The name of the meta field to create.
[<value>]
The value of the meta field. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
Delete a meta field., (*379)
wp term meta delete <id> [<key>] [<value>] [--all]
OPTIONS, (*380)
<id>
The ID of the object.
[<key>]
The name of the meta field to delete.
[<value>]
The value to delete. If omitted, all rows with key will deleted.
[--all]
Delete all meta for the object.
Get meta field value., (*381)
wp term meta get <id> <key> [--format=<format>]
OPTIONS, (*382)
<id>
The ID of the object.
<key>
The name of the meta field to get.
[--format=<format>]
Get value in a particular format.
---
default: var_export
options:
- var_export
- json
- yaml
---
List all metadata associated with an object., (*383)
wp term meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>] [--unserialize]
OPTIONS, (*384)
<id>
ID for the object.
[--keys=<keys>]
Limit output to metadata of specific keys.
[--fields=<fields>]
Limit the output to specific row fields. Defaults to id,meta_key,meta_value.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
- count
---
[--orderby=<fields>]
Set orderby which field.
---
default: id
options:
- id
- meta_key
- meta_value
---
[--order=<order>]
Set ascending or descending order.
---
default: asc
options:
- asc
- desc
---
[--unserialize]
Unserialize meta_value output.
Update a nested value for a meta field., (*385)
wp term meta patch <action> <id> <key> <key-path>... [<value>] [--format=<format>]
OPTIONS, (*386)
<action>
Patch action to perform.
---
options:
- insert
- update
- delete
---
<id>
The ID of the object.
<key>
The name of the meta field to update.
<key-path>...
The name(s) of the keys within the value to locate the value to patch.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
Get a nested value from a meta field., (*387)
wp term meta pluck <id> <key> <key-path>... [--format=<format>]
OPTIONS, (*388)
<id>
The ID of the object.
<key>
The name of the meta field to get.
<key-path>...
The name(s) of the keys within the value to locate the value to pluck.
[--format=<format>]
The output format of the value.
---
default: plaintext
options:
- plaintext
- json
- yaml
Update a meta field., (*389)
wp term meta update <id> <key> [<value>] [--format=<format>]
OPTIONS, (*390)
<id>
The ID of the object.
<key>
The name of the meta field to update.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
wp term recount
Recalculates number of posts assigned to each term., (*391)
wp term recount <taxonomy>...
In instances where manual updates are made to the terms assigned to
posts in the database, the number of posts associated with a term
can become out-of-sync with the actual number of posts., (*392)
This command runs wp_update_term_count() on the taxonomy's terms
to bring the count back to the correct value., (*393)
OPTIONS, (*394)
<taxonomy>...
One or more taxonomies to recalculate.
EXAMPLES, (*395)
# Recount posts assigned to each categories and tags
$ wp term recount category post_tag
Success: Updated category term count.
Success: Updated post_tag term count.
# Recount all listed taxonomies
$ wp taxonomy list --field=name | xargs wp term recount
Success: Updated category term count.
Success: Updated post_tag term count.
Success: Updated nav_menu term count.
Success: Updated link_category term count.
Success: Updated post_format term count.
wp term update
Updates an existing term., (*396)
wp term update <taxonomy> <term> [--by=<field>] [--name=<name>] [--slug=<slug>] [--description=<description>] [--parent=<term-id>]
OPTIONS, (*397)
<taxonomy>
Taxonomy of the term to update.
<term>
ID or slug for the term to update.
[--by=<field>]
Explicitly handle the term value as a slug or id.
---
default: id
options:
- slug
- id
---
[--name=<name>]
A new name for the term.
[--slug=<slug>]
A new slug for the term.
[--description=<description>]
A new description for the term.
[--parent=<term-id>]
A new parent for the term.
EXAMPLES, (*398)
# Change category with id 15 to use the name "Apple"
$ wp term update category 15 --name=Apple
Success: Term updated.
# Change category with slug apple to use the name "Apple"
$ wp term update category apple --by=slug --name=Apple
Success: Term updated.
wp user
Manages users, along with their roles, capabilities, and meta., (*399)
wp user
See references for Roles and Capabilities and WP User class., (*400)
EXAMPLES, (*401)
# List user IDs
$ wp user list --field=ID
1
# Create a new user.
$ wp user create bob bob@example.com --role=author
Success: Created user 3.
Password: k9**&I4vNH(&
# Update an existing user.
$ wp user update 123 --display_name=Mary --user_pass=marypass
Success: Updated user 123.
# Delete user 123 and reassign posts to user 567
$ wp user delete 123 --reassign=567
Success: Removed user 123 from http://example.com.
wp user add-cap
Adds a capability to a user., (*402)
wp user add-cap <user> <cap>
OPTIONS, (*403)
<user>
User ID, user email, or user login.
<cap>
The capability to add.
EXAMPLES, (*404)
# Add a capability for a user
$ wp user add-cap john create_premium_item
Success: Added 'create_premium_item' capability for john (16).
# Add a capability for a user
$ wp user add-cap 15 edit_product
Success: Added 'edit_product' capability for johndoe (15).
wp user add-role
Adds a role for a user., (*405)
wp user add-role <user> [<role>...]
OPTIONS, (*406)
<user>
User ID, user email, or user login.
[<role>...]
Add the specified role(s) to the user.
EXAMPLES, (*407)
$ wp user add-role 12 author
Success: Added 'author' role for johndoe (12).
$ wp user add-role 12 author editor
Success: Added 'author', 'editor' roles for johndoe (12).
wp user application-password
Creates, updates, deletes, lists and retrieves application passwords., (*408)
wp user application-password
EXAMPLES, (*409)
# List user application passwords and only show app name and password hash
$ wp user application-password list 123 --fields=name,password
+--------+------------------------------------+
| name | password |
+--------+------------------------------------+
| myapp | $P$BVGeou1CUot114YohIemgpwxQCzb8O/ |
+--------+------------------------------------+
# Get a specific application password and only show app name and created timestamp
$ wp user application-password get 123 6633824d-c1d7-4f79-9dd5-4586f734d69e --fields=name,created
+--------+------------+
| name | created |
+--------+------------+
| myapp | 1638395611 |
+--------+------------+
# Create user application password
$ wp user application-password create 123 myapp
Success: Created application password.
Password: ZG1bxdxdzjTwhsY8vK8l1C65
# Only print the password without any chrome
$ wp user application-password create 123 myapp --porcelain
ZG1bxdxdzjTwhsY8vK8l1C65
# Update an existing application password
$ wp user application-password update 123 6633824d-c1d7-4f79-9dd5-4586f734d69e --name=newappname
Success: Updated application password.
# Delete an existing application password
$ wp user application-password delete 123 6633824d-c1d7-4f79-9dd5-4586f734d69e
Success: Deleted 1 of 1 application password.
# Check if an application password for a given application exists
$ wp user application-password exists 123 myapp
$ echo $?
1
# Bash script for checking whether an application password exists and creating one if not
if ! wp user application-password exists 123 myapp; then
PASSWORD=$(wp user application-password create 123 myapp --porcelain)
fi
wp user application-password create
Creates a new application password., (*410)
wp user application-password create <user> <app-name> [--app-id=<app-id>] [--porcelain]
OPTIONS, (*411)
<user>
The user login, user email, or user ID of the user to create a new application password for.
<app-name>
Unique name of the application to create an application password for.
[--app-id=<app-id>]
Application ID to attribute to the application password.
[--porcelain]
Output just the new password.
EXAMPLES, (*412)
# Create user application password
$ wp user application-password create 123 myapp
Success: Created application password.
Password: ZG1bxdxdzjTwhsY8vK8l1C65
# Only print the password without any chrome
$ wp user application-password create 123 myapp --porcelain
ZG1bxdxdzjTwhsY8vK8l1C65
# Create user application with a custom application ID for internal tracking
$ wp user application-password create 123 myapp --app-id=42 --porcelain
ZG1bxdxdzjTwhsY8vK8l1C65
wp user application-password delete
Delete an existing application password., (*413)
wp user application-password delete <user> [<uuid>...] [--all]
OPTIONS, (*414)
<user>
The user login, user email, or user ID of the user to delete the application password for.
[<uuid>...]
Comma-separated list of UUIDs of the application passwords to delete.
[--all]
Delete all of the user's application password.
EXAMPLES, (*415)
# Delete an existing application password
$ wp user application-password delete 123 6633824d-c1d7-4f79-9dd5-4586f734d69e
Success: Deleted 1 of 1 application password.
# Delete all of the user's application passwords
$ wp user application-password delete 123 --all
Success: Deleted all application passwords.
wp user application-password exists
Checks whether an application password for a given application exists., (*416)
wp user application-password exists <user> <app-name>
OPTIONS, (*417)
<user>
The user login, user email, or user ID of the user to check the existence of an application password for.
<app-name>
Name of the application to check the existence of an application password for.
EXAMPLES, (*418)
# Check if an application password for a given application exists
$ wp user application-password exists 123 myapp
$ echo $?
1
# Bash script for checking whether an application password exists and creating one if not
if ! wp user application-password exists 123 myapp; then
PASSWORD=$(wp user application-password create 123 myapp --porcelain)
fi
wp user application-password get
Gets a specific application password., (*419)
wp user application-password get <user> <uuid> [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*420)
<user>
The user login, user email, or user ID of the user to get the application password for.
<uuid>
The universally unique ID of the application password.
[--field=<field>]
Prints the value of a single field for the application password.
[--fields=<fields>]
Limit the output to specific fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
---
EXAMPLES, (*421)
# Get a specific application password and only show app name and created timestamp
$ wp user application-password get 123 6633824d-c1d7-4f79-9dd5-4586f734d69e --fields=name,created
+--------+------------+
| name | created |
+--------+------------+
| myapp | 1638395611 |
+--------+------------+
wp user application-password list
Lists all application passwords associated with a user., (*422)
wp user application-password list <user> [--<field>=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>]
OPTIONS, (*423)
<user>
The user login, user email, or user ID of the user to get application passwords for.
[--<field>=<value>]
Filter the list by a specific field.
[--field=<field>]
Prints the value of a single field for each application password.
[--fields=<fields>]
Limit the output to specific fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- count
- yaml
- ids
---
[--orderby=<fields>]
Set orderby which field.
---
default: created
options:
- uuid
- app_id
- name
- password
- created
- last_used
- last_ip
---
[--order=<order>]
Set ascending or descending order.
---
default: desc
options:
- asc
- desc
---
EXAMPLES, (*424)
# List user application passwords and only show app name and password hash
$ wp user application-password list 123 --fields=name,password
+--------+------------------------------------+
| name | password |
+--------+------------------------------------+
| myapp | $P$BVGeou1CUot114YohIemgpwxQCzb8O/ |
+--------+------------------------------------+
wp user application-password record-usage
Record usage of an application password., (*425)
wp user application-password record-usage <user> <uuid>
OPTIONS, (*426)
<user>
The user login, user email, or user ID of the user to update the application password for.
<uuid>
The universally unique ID of the application password.
EXAMPLES, (*427)
# Record usage of an application password
$ wp user application-password record-usage 123 6633824d-c1d7-4f79-9dd5-4586f734d69e
Success: Recorded application password usage.
wp user application-password update
Updates an existing application password., (*428)
wp user application-password update <user> <uuid> [--<field>=<value>]
OPTIONS, (*429)
<user>
The user login, user email, or user ID of the user to update the application password for.
<uuid>
The universally unique ID of the application password.
[--<field>=<value>]
Update the <field> with a new <value>. Currently supported fields: name.
EXAMPLES, (*430)
# Update an existing application password
$ wp user application-password update 123 6633824d-c1d7-4f79-9dd5-4586f734d69e --name=newappname
Success: Updated application password.
wp user create
Creates a new user., (*431)
wp user create <user-login> <user-email> [--role=<role>] [--user_pass=<password>] [--user_registered=<yyyy-mm-dd-hh-ii-ss>] [--display_name=<name>] [--user_nicename=<nice_name>] [--user_url=<url>] [--nickname=<nickname>] [--first_name=<first_name>] [--last_name=<last_name>] [--description=<description>] [--rich_editing=<rich_editing>] [--send-email] [--porcelain]
OPTIONS, (*432)
<user-login>
The login of the user to create.
<user-email>
The email address of the user to create.
[--role=<role>]
The role of the user to create. Default: default role. Possible values
include 'administrator', 'editor', 'author', 'contributor', 'subscriber'.
[--user_pass=<password>]
The user password. Default: randomly generated.
[--user_registered=<yyyy-mm-dd-hh-ii-ss>]
The date the user registered. Default: current date.
[--display_name=<name>]
The display name.
[--user_nicename=<nice_name>]
A string that contains a URL-friendly name for the user. The default is the user's username.
[--user_url=<url>]
A string containing the user's URL for the user's web site.
[--nickname=<nickname>]
The user's nickname, defaults to the user's username.
[--first_name=<first_name>]
The user's first name.
[--last_name=<last_name>]
The user's last name.
[--description=<description>]
A string containing content about the user.
[--rich_editing=<rich_editing>]
A string for whether to enable the rich editor or not. False if not empty.
[--send-email]
Send an email to the user with their new account details.
[--porcelain]
Output just the new user id.
EXAMPLES, (*433)
# Create user
$ wp user create bob bob@example.com --role=author
Success: Created user 3.
Password: k9**&I4vNH(&
# Create user without showing password upon success
$ wp user create ann ann@example.com --porcelain
4
wp user delete
Deletes one or more users from the current site., (*434)
wp user delete <user>... [--network] [--reassign=<user-id>] [--yes]
On multisite, wp user delete
only removes the user from the current
site. Include --network
to also remove the user from the database, but
make sure to reassign their posts prior to deleting the user., (*435)
OPTIONS, (*436)
<user>...
The user login, user email, or user ID of the user(s) to delete.
[--network]
On multisite, delete the user from the entire network.
[--reassign=<user-id>]
User ID to reassign the posts to.
[--yes]
Answer yes to any confirmation prompts.
EXAMPLES, (*437)
# Delete user 123 and reassign posts to user 567
$ wp user delete 123 --reassign=567
Success: Removed user 123 from http://example.com.
# Delete all contributors and reassign their posts to user 2
$ wp user delete $(wp user list --role=contributor --field=ID) --reassign=2
Success: Removed user 813 from http://example.com.
Success: Removed user 578 from http://example.com.
# Delete all contributors in batches of 100 (avoid error: argument list too long: wp)
$ wp user delete $(wp user list --role=contributor --field=ID | head -n 100)
wp user exists
Verifies whether a user exists., (*438)
wp user exists <id>
Displays a success message if the user does exist., (*439)
OPTIONS, (*440)
<id>
The ID of the user to check.
EXAMPLES, (*441)
# The user exists.
$ wp user exists 1337
Success: User with ID 1337 exists.
$ echo $?
0
# The user does not exist.
$ wp user exists 10000
$ echo $?
1
wp user generate
Generates some users., (*442)
wp user generate [--count=<number>] [--role=<role>] [--format=<format>]
Creates a specified number of new users with dummy data., (*443)
OPTIONS, (*444)
[--count=<number>]
How many users to generate?
---
default: 100
---
[--role=<role>]
The role of the generated users. Default: default role from WP
[--format=<format>]
Render output in a particular format.
---
default: progress
options:
- progress
- ids
---
EXAMPLES, (*445)
# Add meta to every generated users.
$ wp user generate --format=ids --count=3 | xargs -d ' ' -I % wp user meta add % foo bar
Success: Added custom field.
Success: Added custom field.
Success: Added custom field.
wp user get
Gets details about a user., (*446)
wp user get <user> [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*447)
<user>
User ID, user email, or user login.
[--field=<field>]
Instead of returning the whole user, returns the value of a single field.
[--fields=<fields>]
Get a specific subset of the user's fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
---
EXAMPLES, (*448)
# Get user
$ wp user get 12 --field=login
supervisor
# Get user and export to JSON file
$ wp user get bob --format=json > bob.json
wp user import-csv
Imports users from a CSV file., (*449)
wp user import-csv <file> [--send-email] [--skip-update]
If the user already exists (matching the email address or login), then
the user is updated unless the --skip-update
flag is used., (*450)
OPTIONS, (*451)
<file>
The local or remote CSV file of users to import. If '-', then reads from STDIN.
[--send-email]
Send an email to new users with their account details.
[--skip-update]
Don't update users that already exist.
EXAMPLES, (*452)
# Import users from local CSV file
$ wp user import-csv /path/to/users.csv
Success: bobjones created.
Success: newuser1 created.
Success: existinguser created.
# Import users from remote CSV file
$ wp user import-csv http://example.com/users.csv
Sample users.csv file:
user_login,user_email,display_name,role
bobjones,bobjones@example.com,Bob Jones,contributor
newuser1,newuser1@example.com,New User,author
existinguser,existinguser@example.com,Existing User,administrator
wp user list
Lists users., (*453)
wp user list [--role=<role>] [--<field>=<value>] [--network] [--field=<field>] [--fields=<fields>] [--format=<format>]
Display WordPress users based on all arguments supported by
WP_User_Query()., (*454)
OPTIONS, (*455)
[--role=<role>]
Only display users with a certain role.
[--<field>=<value>]
Control output by one or more arguments of WP_User_Query().
[--network]
List all users in the network for multisite.
[--field=<field>]
Prints the value of a single field for each user.
[--fields=<fields>]
Limit the output to specific object fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- ids
- json
- count
- yaml
---
AVAILABLE FIELDS, (*456)
These fields will be displayed by default for each user:, (*457)
- ID
- user_login
- display_name
- user_email
- user_registered
- roles
These fields are optionally available:, (*458)
- user_pass
- user_nicename
- user_url
- user_activation_key
- user_status
- spam
- deleted
- caps
- cap_key
- allcaps
- filter
- url
EXAMPLES, (*459)
# List user IDs
$ wp user list --field=ID
1
# List users with administrator role
$ wp user list --role=administrator --format=csv
ID,user_login,display_name,user_email,user_registered,roles
1,supervisor,supervisor,supervisor@gmail.com,"2016-06-03 04:37:00",administrator
# List users with only given fields
$ wp user list --fields=display_name,user_email --format=json
[{"display_name":"supervisor","user_email":"supervisor@gmail.com"}]
# List users ordered by the 'last_activity' meta value.
$ wp user list --meta_key=last_activity --orderby=meta_value_num
wp user list-caps
Lists all capabilities for a user., (*460)
wp user list-caps <user> [--format=<format>] [--origin=<origin>] [--exclude-role-names]
OPTIONS, (*461)
<user>
User ID, user email, or login.
[--format=<format>]
Render output in a particular format.
---
default: list
options:
- list
- table
- csv
- json
- count
- yaml
---
[--origin=<origin>]
Render output in a particular format.
---
default: all
options:
- all
- user
- role
---
[--exclude-role-names]
Exclude capabilities that match role names from output.
EXAMPLES, (*462)
$ wp user list-caps 21
edit_product
create_premium_item
Adds, updates, deletes, and lists user custom fields., (*463)
wp user meta
EXAMPLES, (*464)
# Add user meta
$ wp user meta add 123 bio "Mary is an WordPress developer."
Success: Added custom field.
# List user meta
$ wp user meta list 123 --keys=nickname,description,wp_capabilities
+---------+-----------------+--------------------------------+
| user_id | meta_key | meta_value |
+---------+-----------------+--------------------------------+
| 123 | nickname | supervisor |
| 123 | description | Mary is a WordPress developer. |
| 123 | wp_capabilities | {"administrator":true} |
+---------+-----------------+--------------------------------+
# Update user meta
$ wp user meta update 123 bio "Mary is an awesome WordPress developer."
Success: Updated custom field 'bio'.
# Delete user meta
$ wp user meta delete 123 bio
Success: Deleted custom field.
Adds a meta field., (*465)
wp user meta add <user> <key> <value> [--format=<format>]
OPTIONS, (*466)
<user>
The user login, user email, or user ID of the user to add metadata for.
<key>
The metadata key.
<value>
The new metadata value.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
EXAMPLES, (*467)
# Add user meta
$ wp user meta add 123 bio "Mary is an WordPress developer."
Success: Added custom field.
Deletes a meta field., (*468)
wp user meta delete <user> <key> [<value>]
OPTIONS, (*469)
<user>
The user login, user email, or user ID of the user to delete metadata from.
<key>
The metadata key.
[<value>]
The value to delete. If omitted, all rows with key will deleted.
EXAMPLES, (*470)
# Delete user meta
$ wp user meta delete 123 bio
Success: Deleted custom field.
Gets meta field value., (*471)
wp user meta get <user> <key> [--format=<format>]
OPTIONS, (*472)
<user>
The user login, user email, or user ID of the user to get metadata for.
<key>
The metadata key.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
---
EXAMPLES, (*473)
# Get user meta
$ wp user meta get 123 bio
Mary is an WordPress developer.
# Get the primary site of a user (for multisite)
$ wp user meta get 2 primary_blog
3
Lists all metadata associated with a user., (*474)
wp user meta list <user> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>] [--unserialize]
OPTIONS, (*475)
<user>
The user login, user email, or user ID of the user to get metadata for.
[--keys=<keys>]
Limit output to metadata of specific keys.
[--fields=<fields>]
Limit the output to specific row fields. Defaults to id,meta_key,meta_value.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- count
- yaml
---
[--orderby=<fields>]
Set orderby which field.
---
default: id
options:
- id
- meta_key
- meta_value
---
[--order=<order>]
Set ascending or descending order.
---
default: asc
options:
- asc
- desc
---
[--unserialize]
Unserialize meta_value output.
EXAMPLES, (*476)
# List user meta
$ wp user meta list 123 --keys=nickname,description,wp_capabilities
+---------+-----------------+--------------------------------+
| user_id | meta_key | meta_value |
+---------+-----------------+--------------------------------+
| 123 | nickname | supervisor |
| 123 | description | Mary is a WordPress developer. |
| 123 | wp_capabilities | {"administrator":true} |
+---------+-----------------+--------------------------------+
Update a nested value for a meta field., (*477)
wp user meta patch <action> <id> <key> <key-path>... [<value>] [--format=<format>]
OPTIONS, (*478)
<action>
Patch action to perform.
---
options:
- insert
- update
- delete
---
<id>
The ID of the object.
<key>
The name of the meta field to update.
<key-path>...
The name(s) of the keys within the value to locate the value to patch.
[<value>]
The new value. If omitted, the value is read from STDIN.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
Get a nested value from a meta field., (*479)
wp user meta pluck <id> <key> <key-path>... [--format=<format>]
OPTIONS, (*480)
<id>
The ID of the object.
<key>
The name of the meta field to get.
<key-path>...
The name(s) of the keys within the value to locate the value to pluck.
[--format=<format>]
The output format of the value.
---
default: plaintext
options:
- plaintext
- json
- yaml
Updates a meta field., (*481)
wp user meta update <user> <key> <value> [--format=<format>]
OPTIONS, (*482)
<user>
The user login, user email, or user ID of the user to update metadata for.
<key>
The metadata key.
<value>
The new metadata value.
[--format=<format>]
The serialization format for the value.
---
default: plaintext
options:
- plaintext
- json
---
EXAMPLES, (*483)
# Update user meta
$ wp user meta update 123 bio "Mary is an awesome WordPress developer."
Success: Updated custom field 'bio'.
wp user remove-cap
Removes a user's capability., (*484)
wp user remove-cap <user> <cap>
OPTIONS, (*485)
<user>
User ID, user email, or user login.
<cap>
The capability to be removed.
EXAMPLES, (*486)
$ wp user remove-cap 11 publish_newsletters
Success: Removed 'publish_newsletters' cap for supervisor (11).
$ wp user remove-cap 11 publish_posts
Error: The 'publish_posts' cap for supervisor (11) is inherited from a role.
$ wp user remove-cap 11 nonexistent_cap
Error: No such 'nonexistent_cap' cap for supervisor (11).
wp user remove-role
Removes a user's role., (*487)
wp user remove-role <user> [<role>...]
OPTIONS, (*488)
<user>
User ID, user email, or user login.
[<role>...]
Remove the specified role(s) from the user.
EXAMPLES, (*489)
$ wp user remove-role 12 author
Success: Removed 'author' role for johndoe (12).
$ wp user remove-role 12 author editor
Success: Removed 'author', 'editor' roles for johndoe (12).
wp user reset-password
Resets the password for one or more users., (*490)
wp user reset-password <user>... [--skip-email] [--show-password] [--porcelain]
OPTIONS, (*491)
<user>...
one or more user logins or IDs.
[--skip-email]
Don't send an email notification to the affected user(s).
[--show-password]
Show the new password(s).
[--porcelain]
Output only the new password(s).
EXAMPLES, (*492)
# Reset the password for two users and send them the change email.
$ wp user reset-password admin editor
Reset password for admin.
Reset password for editor.
Success: Passwords reset for 2 users.
# Reset and display the password.
$ wp user reset-password editor --show-password
Reset password for editor.
Password: N6hAau0fXZMN#rLCIirdEGOh
Success: Password reset for 1 user.
# Reset the password for one user, displaying only the new password, and not sending the change email.
$ wp user reset-password admin --skip-email --porcelain
yV6BP*!d70wg
# Reset password for all users.
$ wp user reset-password $(wp user list --format=ids)
Reset password for admin.
Reset password for editor.
Reset password for subscriber.
Success: Passwords reset for 3 users.
# Reset password for all users with a particular role.
$ wp user reset-password $(wp user list --format=ids --role=administrator)
Reset password for admin.
Success: Password reset for 1 user.
wp user session
Destroys and lists a user's sessions., (*493)
wp user session
EXAMPLES, (*494)
# List a user's sessions.
$ wp user session list admin@example.com --format=csv
login_time,expiration_time,ip,ua
"2016-01-01 12:34:56","2016-02-01 12:34:56",127.0.0.1,"Mozilla/5.0..."
# Destroy the most recent session of the given user.
$ wp user session destroy admin
Success: Destroyed session. 3 sessions remaining.
wp user session destroy
Destroy a session for the given user., (*495)
wp user session destroy <user> [<token>] [--all]
OPTIONS, (*496)
<user>
User ID, user email, or user login.
[<token>]
The token of the session to destroy. Defaults to the most recently created session.
[--all]
Destroy all of the user's sessions.
EXAMPLES, (*497)
# Destroy the most recent session of the given user.
$ wp user session destroy admin
Success: Destroyed session. 3 sessions remaining.
# Destroy a specific session of the given user.
$ wp user session destroy admin e073ad8540a9c2...
Success: Destroyed session. 2 sessions remaining.
# Destroy all the sessions of the given user.
$ wp user session destroy admin --all
Success: Destroyed all sessions.
# Destroy all sessions for all users.
$ wp user list --field=ID | xargs -n 1 wp user session destroy --all
Success: Destroyed all sessions.
Success: Destroyed all sessions.
wp user session list
List sessions for the given user., (*498)
wp user session list <user> [--fields=<fields>] [--format=<format>]
Note: The token
field does not return the actual token, but a hash of
it. The real token is not persisted and can only be found in the
corresponding cookies on the client side., (*499)
OPTIONS, (*500)
<user>
User ID, user email, or user login.
[--fields=<fields>]
Limit the output to specific fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
- count
- ids
---
AVAILABLE FIELDS, (*501)
These fields will be displayed by default for each session:, (*502)
- token
- login_time
- expiration_time
- ip
- ua
These fields are optionally available:, (*503)
EXAMPLES, (*504)
# List a user's sessions.
$ wp user session list admin@example.com --format=csv
login_time,expiration_time,ip,ua
"2016-01-01 12:34:56","2016-02-01 12:34:56",127.0.0.1,"Mozilla/5.0..."
wp user set-role
Sets the user role., (*505)
wp user set-role <user> [<role>]
OPTIONS, (*506)
<user>
User ID, user email, or user login.
[<role>]
Make the user have the specified role. If not passed, the default role is
used.
EXAMPLES, (*507)
$ wp user set-role 12 author
Success: Added johndoe (12) to http://example.com as author.
wp user signup
Manages signups on a multisite installation., (*508)
wp user signup
EXAMPLES, (*509)
# List signups.
$ wp user signup list
+-----------+------------+---------------------+---------------------+--------+------------------+
| signup_id | user_login | user_email | registered | active | activation_key |
+-----------+------------+---------------------+---------------------+--------+------------------+
| 1 | bobuser | bobuser@example.com | 2024-03-13 05:46:53 | 1 | 7320b2f009266618 |
| 2 | johndoe | johndoe@example.com | 2024-03-13 06:24:44 | 0 | 9068d859186cd0b5 |
+-----------+------------+---------------------+---------------------+--------+------------------+
# Activate signup.
$ wp user signup activate 2
Signup 2 activated. Password: bZFSGsfzb9xs
Success: Activated 1 of 1 signups.
# Delete signup.
$ wp user signup delete 3
Signup 3 deleted.
Success: Deleted 1 of 1 signups.
wp user signup activate
Activates one or more signups., (*510)
wp user signup activate <signup>...
OPTIONS, (*511)
<signup>...
The signup ID, user login, user email, or activation key of the signup(s) to activate.
EXAMPLES, (*512)
# Activate signup.
$ wp user signup activate 2
Signup 2 activated. Password: bZFSGsfzb9xs
Success: Activated 1 of 1 signups.
wp user signup delete
Deletes one or more signups., (*513)
wp user signup delete [<signup>...] [--all]
OPTIONS, (*514)
[<signup>...]
The signup ID, user login, user email, or activation key of the signup(s) to delete.
[--all]
If set, all signups will be deleted.
EXAMPLES, (*515)
# Delete signup.
$ wp user signup delete 3
Signup 3 deleted.
Success: Deleted 1 of 1 signups.
wp user signup get
Gets details about a signup., (*516)
wp user signup get <signup> [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*517)
<signup>
The signup ID, user login, user email, or activation key.
[--field=<field>]
Instead of returning the whole signup, returns the value of a single field.
[--fields=<fields>]
Limit the output to specific fields. Defaults to all fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
---
EXAMPLES, (*518)
# Get signup.
$ wp user signup get 1 --field=user_login
bobuser
# Get signup and export to JSON file.
$ wp user signup get bobuser --format=json > bobuser.json
wp user signup list
Lists signups., (*519)
wp user signup list [--<field>=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>] [--per_page=<per_page>]
[--<field>=<value>]
Filter the list by a specific field.
[--field=<field>]
Prints the value of a single field for each signup.
[--fields=<fields>]
Limit the output to specific object fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- ids
- json
- count
- yaml
---
[--per_page=<per_page>]
Limits the signups to the given number. Defaults to none.
AVAILABLE FIELDS, (*520)
These fields will be displayed by default for each signup:, (*521)
- signup_id
- user_login
- user_email
- registered
- active
- activation_key
These fields are optionally available:, (*522)
- domain
- path
- title
- activated
- meta
EXAMPLES, (*523)
# List signup IDs.
$ wp user signup list --field=signup_id
1
# List all signups.
$ wp user signup list
+-----------+------------+---------------------+---------------------+--------+------------------+
| signup_id | user_login | user_email | registered | active | activation_key |
+-----------+------------+---------------------+---------------------+--------+------------------+
| 1 | bobuser | bobuser@example.com | 2024-03-13 05:46:53 | 1 | 7320b2f009266618 |
| 2 | johndoe | johndoe@example.com | 2024-03-13 06:24:44 | 0 | 9068d859186cd0b5 |
+-----------+------------+---------------------+---------------------+--------+------------------+
wp user spam
Marks one or more users as spam on multisite., (*524)
wp user spam <user>...
OPTIONS, (*525)
<user>...
The user login, user email, or user ID of the user(s) to mark as spam.
EXAMPLES, (*526)
# Mark user as spam.
$ wp user spam 123
User 123 marked as spam.
Success: Spammed 1 of 1 users.
wp user term
Adds, updates, removes, and lists user terms., (*527)
wp user term
EXAMPLES, (*528)
# Set user terms
$ wp user term set 123 test category
Success: Set terms.
wp user term add
Add a term to an object., (*529)
wp user term add <id> <taxonomy> <term>... [--by=<field>]
Append the term to the existing set of terms on the object., (*530)
OPTIONS, (*531)
<id>
The ID of the object.
<taxonomy>
The name of the taxonomy type to be added.
<term>...
The slug of the term or terms to be added.
[--by=<field>]
Explicitly handle the term value as a slug or id.
---
default: slug
options:
- slug
- id
---
wp user term list
List all terms associated with an object., (*532)
wp user term list <id> <taxonomy>... [--field=<field>] [--fields=<fields>] [--format=<format>]
OPTIONS, (*533)
<id>
ID for the object.
<taxonomy>...
One or more taxonomies to list.
[--field=<field>]
Prints the value of a single field for each term.
[--fields=<fields>]
Limit the output to specific row fields.
[--format=<format>]
Render output in a particular format.
---
default: table
options:
- table
- csv
- json
- yaml
- count
- ids
---
AVAILABLE FIELDS, (*534)
These fields will be displayed by default for each term:, (*535)
- term_id
- name
- slug
- taxonomy
These fields are optionally available:, (*536)
- term_taxonomy_id
- description
- term_group
- parent
- count
wp user term remove
Remove a term from an object., (*537)
wp user term remove <id> <taxonomy> [<term>...] [--by=<field>] [--all]
OPTIONS, (*538)
<id>
The ID of the object.
<taxonomy>
The name of the term's taxonomy.
[<term>...]
The slug of the term or terms to be removed from the object.
[--by=<field>]
Explicitly handle the term value as a slug or id.
---
default: slug
options:
- slug
- id
---
[--all]
Remove all terms from the object.
wp user term set
Set object terms., (*539)
wp user term set <id> <taxonomy> <term>... [--by=<field>]
Replaces existing terms on the object., (*540)
OPTIONS, (*541)
<id>
The ID of the object.
<taxonomy>
The name of the taxonomy type to be updated.
<term>...
The slug of the term or terms to be updated.
[--by=<field>]
Explicitly handle the term value as a slug or id.
---
default: slug
options:
- slug
- id
---
wp user unspam
Removes one or more users from spam on multisite., (*542)
wp user unspam <user>...
OPTIONS, (*543)
<user>...
The user login, user email, or user ID of the user(s) to remove from spam.
EXAMPLES, (*544)
# Remove user from spam.
$ wp user unspam 123
User 123 removed from spam.
Success: Unspamed 1 of 1 users.
wp user update
Updates an existing user., (*545)
wp user update <user>... [--user_pass=<password>] [--user_nicename=<nice_name>] [--user_url=<url>] [--user_email=<email>] [--display_name=<display_name>] [--nickname=<nickname>] [--first_name=<first_name>] [--last_name=<last_name>] [--description=<description>] [--rich_editing=<rich_editing>] [--user_registered=<yyyy-mm-dd-hh-ii-ss>] [--role=<role>] --<field>=<value> [--skip-email]
OPTIONS, (*546)
<user>...
The user login, user email or user ID of the user(s) to update.
[--user_pass=<password>]
A string that contains the plain text password for the user.
[--user_nicename=<nice_name>]
A string that contains a URL-friendly name for the user. The default is the user's username.
[--user_url=<url>]
A string containing the user's URL for the user's web site.
[--user_email=<email>]
A string containing the user's email address.
[--display_name=<display_name>]
A string that will be shown on the site. Defaults to user's username.
[--nickname=<nickname>]
The user's nickname, defaults to the user's username.
[--first_name=<first_name>]
The user's first name.
[--last_name=<last_name>]
The user's last name.
[--description=<description>]
A string containing content about the user.
[--rich_editing=<rich_editing>]
A string for whether to enable the rich editor or not. False if not empty.
[--user_registered=<yyyy-mm-dd-hh-ii-ss>]
The date the user registered.
[--role=<role>]
A string used to set the user's role.
--<field>=<value>
One or more fields to update. For accepted fields, see wp_update_user().
[--skip-email]
Don't send an email notification to the user.
EXAMPLES, (*547)
# Update user
$ wp user update 123 --display_name=Mary --user_pass=marypass
Success: Updated user 123.
Installing
This package is included with WP-CLI itself, no additional installation necessary., (*548)
To install the latest version of this package over what's included in WP-CLI, run:, (*549)
wp package install git@github.com:wp-cli/entity-command.git
Contributing
We appreciate you taking the initiative to contribute to this project., (*550)
Contributing isn’t limited to just code. We encourage you to contribute in the way that best fits your abilities, by writing tutorials, giving a demo at your local meetup, helping other users with their support questions, or revising our documentation., (*551)
For a more thorough introduction, check out WP-CLI's guide to contributing. This package follows those policy and guidelines., (*552)
Reporting a bug
Think you’ve found a bug? We’d love for you to help us get it fixed., (*553)
Before you create a new issue, you should search existing issues to see if there’s an existing resolution to it, or if it’s already been fixed in a newer version., (*554)
Once you’ve done a bit of searching and discovered there isn’t an open or fixed issue for your bug, please create a new issue. Include as much detail as you can, and clear steps to reproduce if possible. For more guidance, review our bug report documentation., (*555)
Creating a pull request
Want to contribute a new feature? Please first open a new issue to discuss whether the feature is a good fit for the project., (*556)
Once you've decided to commit the time to seeing your pull request through, please follow our guidelines for creating a pull request to make sure it's a pleasant experience. See "Setting up" for details specific to working on this package locally., (*557)
Support
GitHub issues aren't for general support questions, but there are other venues you can try: https://wp-cli.org/#support, (*558)
This README.md is generated dynamically from the project's codebase using wp scaffold package-readme
(doc). To suggest changes, please submit a pull request against the corresponding part of the codebase., (*559)