{"id":16048277,"url":"https://github.com/wp-cli/entity-command","last_synced_at":"2026-04-01T22:27:54.804Z","repository":{"id":19511782,"uuid":"87201389","full_name":"wp-cli/entity-command","owner":"wp-cli","description":"Manage WordPress comments, menus, options, posts, sites, terms, and users.","archived":false,"fork":false,"pushed_at":"2026-03-26T23:33:32.000Z","size":9573,"stargazers_count":104,"open_issues_count":12,"forks_count":94,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-03-27T07:25:08.138Z","etag":null,"topics":["cli","comment","entity","hacktoberfest","menu","meta","network","option","page","post","session","site","taxonomy","term","user","wordpress","wp-cli","wp-cli-package"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wp-cli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2017-04-04T15:10:32.000Z","updated_at":"2026-03-26T20:06:26.000Z","dependencies_parsed_at":"2024-01-11T11:55:20.321Z","dependency_job_id":"9e968874-62ac-42b6-8d41-11eb2b5f68dc","html_url":"https://github.com/wp-cli/entity-command","commit_stats":{"total_commits":1822,"total_committers":143,"mean_commits":"12.741258741258742","dds":0.7749725576289792,"last_synced_commit":"f5d8814e4e3544a095bba834b341ac3a3a58cab0"},"previous_names":[],"tags_count":59,"template":false,"template_full_name":null,"purl":"pkg:github/wp-cli/entity-command","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wp-cli%2Fentity-command","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wp-cli%2Fentity-command/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wp-cli%2Fentity-command/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wp-cli%2Fentity-command/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wp-cli","download_url":"https://codeload.github.com/wp-cli/entity-command/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wp-cli%2Fentity-command/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","comment","entity","hacktoberfest","menu","meta","network","option","page","post","session","site","taxonomy","term","user","wordpress","wp-cli","wp-cli-package"],"created_at":"2024-10-09T00:05:50.142Z","updated_at":"2026-04-01T22:27:54.779Z","avatar_url":"https://github.com/wp-cli.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"wp-cli/entity-command\n=====================\n\nManage WordPress comments, menus, options, posts, sites, terms, and users.\n\n[![Testing](https://github.com/wp-cli/entity-command/actions/workflows/testing.yml/badge.svg)](https://github.com/wp-cli/entity-command/actions/workflows/testing.yml) [![Code Coverage](https://codecov.io/gh/wp-cli/entity-command/branch/main/graph/badge.svg)](https://codecov.io/gh/wp-cli/entity-command/tree/main)\n\nQuick links: [Using](#using) | [Installing](#installing) | [Contributing](#contributing) | [Support](#support)\n\n## Using\n\nThis package implements the following commands:\n\n### wp comment\n\nCreates, updates, deletes, and moderates comments.\n\n~~~\nwp comment\n~~~\n\n**EXAMPLES**\n\n    # Create a new comment.\n    $ wp comment create --comment_post_ID=15 --comment_content=\"hello blog\" --comment_author=\"wp-cli\"\n    Success: Created comment 932.\n\n    # Update an existing comment.\n    $ wp comment update 123 --comment_author='That Guy'\n    Success: Updated comment 123.\n\n    # Delete an existing comment.\n    $ wp comment delete 1337 --force\n    Success: Deleted comment 1337.\n\n    # Trash all spam comments.\n    $ wp comment delete $(wp comment list --status=spam --format=ids)\n    Success: Trashed comment 264.\n    Success: Trashed comment 262.\n\n    # Create a note for a block (WordPress 6.9+).\n    $ wp comment create --comment_post_ID=15 --comment_content=\"This block needs revision\" --comment_author=\"editor\" --comment_type=\"note\"\n    Success: Created comment 945.\n\n    # List notes for a specific post (WordPress 6.9+).\n    $ wp comment list --type=note --post_id=15\n    +------------+---------------------+----------------------------------+\n    | comment_ID | comment_date        | comment_content                  |\n    +------------+---------------------+----------------------------------+\n    | 945        | 2024-11-10 14:30:00 | This block needs revision        |\n    +------------+---------------------+----------------------------------+\n\n    # Reply to a note (WordPress 6.9+).\n    $ wp comment create --comment_post_ID=15 --comment_content=\"Updated per feedback\" --comment_author=\"editor\" --comment_type=\"note\" --comment_parent=945\n    Success: Created comment 946.\n\n    # Resolve a note by adding a comment with status meta (WordPress 6.9+).\n    $ wp comment create --comment_post_ID=15 --comment_content=\"Resolving\" --comment_author=\"editor\" --comment_type=\"note\" --comment_parent=945 --porcelain\n    947\n    $ wp comment meta add 947 _wp_note_status resolved\n    Success: Added custom field.\n\n    # Reopen a resolved note (WordPress 6.9+).\n    $ wp comment create --comment_post_ID=15 --comment_content=\"Reopening for further review\" --comment_author=\"editor\" --comment_type=\"note\" --comment_parent=945 --porcelain\n    948\n    $ wp comment meta add 948 _wp_note_status reopen\n    Success: Added custom field.\n\n\n\n### wp comment approve\n\nApproves a comment.\n\n~~~\nwp comment approve \u003cid\u003e...\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e...\n\t\tThe IDs of the comments to approve.\n\n**EXAMPLES**\n\n    # Approve comment.\n    $ wp comment approve 1337\n    Success: Approved comment 1337.\n\n\n\n### wp comment count\n\nCounts comments, on whole blog or on a given post.\n\n~~~\nwp comment count [\u003cpost-id\u003e]\n~~~\n\n**OPTIONS**\n\n\t[\u003cpost-id\u003e]\n\t\tThe ID of the post to count comments in.\n\n**EXAMPLES**\n\n    # Count comments on whole blog.\n    $ wp comment count\n    approved:        33\n    spam:            3\n    trash:           1\n    post-trashed:    0\n    all:             34\n    moderated:       1\n    total_comments:  37\n\n    # Count comments in a post.\n    $ wp comment count 42\n    approved:        19\n    spam:            0\n    trash:           0\n    post-trashed:    0\n    all:             19\n    moderated:       0\n    total_comments:  19\n\n\n\n### wp comment create\n\nCreates a new comment.\n\n~~~\nwp comment create [--\u003cfield\u003e=\u003cvalue\u003e] [--porcelain]\n~~~\n\n**OPTIONS**\n\n\t[--\u003cfield\u003e=\u003cvalue\u003e]\n\t\tAssociative args for the new comment. See wp_insert_comment().\n\n\t[--porcelain]\n\t\tOutput just the new comment id.\n\n**EXAMPLES**\n\n    # Create comment.\n    $ wp comment create --comment_post_ID=15 --comment_content=\"hello blog\" --comment_author=\"wp-cli\"\n    Success: Created comment 932.\n\n    # Create a note (WordPress 6.9+).\n    $ wp comment create --comment_post_ID=15 --comment_content=\"This block needs revision\" --comment_author=\"editor\" --comment_type=\"note\"\n    Success: Created comment 933.\n\n\n\n### wp comment delete\n\nDeletes a comment.\n\n~~~\nwp comment delete \u003cid\u003e... [--force]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e...\n\t\tOne or more IDs of comments to delete.\n\n\t[--force]\n\t\tSkip the trash bin.\n\n**EXAMPLES**\n\n    # Delete comment.\n    $ wp comment delete 1337 --force\n    Success: Deleted comment 1337.\n\n    # Delete multiple comments.\n    $ wp comment delete 1337 2341 --force\n    Success: Deleted comment 1337.\n    Success: Deleted comment 2341.\n\n\n\n### wp comment exists\n\nVerifies whether a comment exists.\n\n~~~\nwp comment exists \u003cid\u003e\n~~~\n\nDisplays a success message if the comment does exist.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the comment to check.\n\n**EXAMPLES**\n\n    # Check whether comment exists.\n    $ wp comment exists 1337\n    Success: Comment with ID 1337 exists.\n\n\n\n### wp comment generate\n\nGenerates some number of new dummy comments.\n\n~~~\nwp comment generate [--count=\u003cnumber\u003e] [--post_id=\u003cpost-id\u003e] [--format=\u003cformat\u003e]\n~~~\n\nCreates a specified number of new comments with dummy data.\n\n**OPTIONS**\n\n\t[--count=\u003cnumber\u003e]\n\t\tHow many comments to generate?\n\t\t---\n\t\tdefault: 100\n\t\t---\n\n\t[--post_id=\u003cpost-id\u003e]\n\t\tAssign comments to a specific post.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: progress\n\t\toptions:\n\t\t  - progress\n\t\t  - ids\n\t\t---\n\n**EXAMPLES**\n\n    # Generate comments for the given post.\n    $ wp comment generate --format=ids --count=3 --post_id=123\n    138 139 140\n\n    # Add meta to every generated comment.\n    $ wp comment generate --format=ids --count=3 | xargs -d ' ' -I % wp comment meta add % foo bar\n    Success: Added custom field.\n    Success: Added custom field.\n    Success: Added custom field.\n\n\n\n### wp comment get\n\nGets the data of a single comment.\n\n~~~\nwp comment get \u003cid\u003e [--field=\u003cfield\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe comment to get.\n\n\t[--field=\u003cfield\u003e]\n\t\tInstead of returning the whole comment, returns the value of a single field.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific fields. Defaults to all fields.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - yaml\n\t\t---\n\n**EXAMPLES**\n\n    # Get comment.\n    $ wp comment get 21 --field=content\n    Thanks for all the comments, everyone!\n\n\n\n### wp comment list\n\nGets a list of comments.\n\n~~~\nwp comment list [--\u003cfield\u003e=\u003cvalue\u003e] [--field=\u003cfield\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e]\n~~~\n\nDisplay comments based on all arguments supported by\n[WP_Comment_Query()](https://developer.wordpress.org/reference/classes/WP_Comment_Query/__construct/).\n\n**OPTIONS**\n\n\t[--\u003cfield\u003e=\u003cvalue\u003e]\n\t\tOne or more args to pass to WP_Comment_Query.\n\n\t[--field=\u003cfield\u003e]\n\t\tPrints the value of a single field for each comment.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific object fields.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - ids\n\t\t  - csv\n\t\t  - json\n\t\t  - count\n\t\t  - yaml\n\t\t---\n\n**AVAILABLE FIELDS**\n\nThese fields will be displayed by default for each comment:\n\n* comment_ID\n* comment_post_ID\n* comment_date\n* comment_approved\n* comment_author\n* comment_author_email\n\nThese fields are optionally available:\n\n* comment_author_url\n* comment_author_IP\n* comment_date_gmt\n* comment_content\n* comment_karma\n* comment_agent\n* comment_type\n* comment_parent\n* user_id\n* url\n\n**EXAMPLES**\n\n    # List comment IDs.\n    $ wp comment list --field=ID\n    22\n    23\n    24\n\n    # List comments of a post.\n    $ wp comment list --post_id=1 --fields=ID,comment_date,comment_author\n    +------------+---------------------+----------------+\n    | comment_ID | comment_date        | comment_author |\n    +------------+---------------------+----------------+\n    | 1          | 2015-06-20 09:00:10 | Mr WordPress   |\n    +------------+---------------------+----------------+\n\n    # List approved comments.\n    $ wp comment list --number=3 --status=approve --fields=ID,comment_date,comment_author\n    +------------+---------------------+----------------+\n    | comment_ID | comment_date        | comment_author |\n    +------------+---------------------+----------------+\n    | 1          | 2015-06-20 09:00:10 | Mr WordPress   |\n    | 30         | 2013-03-14 12:35:07 | John Doe       |\n    | 29         | 2013-03-14 11:56:08 | Jane Doe       |\n    +------------+---------------------+----------------+\n\n    # List unapproved comments.\n    $ wp comment list --number=3 --status=hold --fields=ID,comment_date,comment_author\n    +------------+---------------------+----------------+\n    | comment_ID | comment_date        | comment_author |\n    +------------+---------------------+----------------+\n    | 8          | 2023-11-10 13:13:06 | John Doe       |\n    | 7          | 2023-11-10 13:09:55 | Mr WordPress   |\n    | 9          | 2023-11-10 11:22:31 | Jane Doe       |\n    +------------+---------------------+----------------+\n\n    # List comments marked as spam.\n    $ wp comment list --status=spam --fields=ID,comment_date,comment_author\n    +------------+---------------------+----------------+\n    | comment_ID | comment_date        | comment_author |\n    +------------+---------------------+----------------+\n    | 2          | 2023-11-10 11:22:31 | Jane Doe       |\n    +------------+---------------------+----------------+\n\n    # List comments in trash.\n    $ wp comment list --status=trash --fields=ID,comment_date,comment_author\n    +------------+---------------------+----------------+\n    | comment_ID | comment_date        | comment_author |\n    +------------+---------------------+----------------+\n    | 3          | 2023-11-10 11:22:31 | John Doe       |\n    +------------+---------------------+----------------+\n\n    # List notes for a specific post (WordPress 6.9+).\n    $ wp comment list --type=note --post_id=15 --fields=ID,comment_date,comment_content\n    +------------+---------------------+----------------------------------+\n    | comment_ID | comment_date        | comment_content                  |\n    +------------+---------------------+----------------------------------+\n    | 10         | 2024-11-10 14:30:00 | This block needs revision        |\n    | 11         | 2024-11-10 15:45:00 | Updated per feedback             |\n    +------------+---------------------+----------------------------------+\n\n\n\n### wp comment meta\n\nAdds, updates, deletes, and lists comment custom fields.\n\n~~~\nwp comment meta\n~~~\n\n**EXAMPLES**\n\n    # Set comment meta\n    $ wp comment meta set 123 description \"Mary is a WordPress developer.\"\n    Success: Updated custom field 'description'.\n\n    # Get comment meta\n    $ wp comment meta get 123 description\n    Mary is a WordPress developer.\n\n    # Update comment meta\n    $ wp comment meta update 123 description \"Mary is an awesome WordPress developer.\"\n    Success: Updated custom field 'description'.\n\n    # Delete comment meta\n    $ wp comment meta delete 123 description\n    Success: Deleted custom field.\n\n\n\n\n\n### wp comment meta add\n\nAdd a meta field.\n\n~~~\nwp comment meta add \u003cid\u003e \u003ckey\u003e [\u003cvalue\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to create.\n\n\t[\u003cvalue\u003e]\n\t\tThe value of the meta field. If omitted, the value is read from STDIN.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t---\n\n\n\n### wp comment meta delete\n\nDelete a meta field.\n\n~~~\nwp comment meta delete \u003cid\u003e [\u003ckey\u003e] [\u003cvalue\u003e] [--all]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t[\u003ckey\u003e]\n\t\tThe name of the meta field to delete.\n\n\t[\u003cvalue\u003e]\n\t\tThe value to delete. If omitted, all rows with key will deleted.\n\n\t[--all]\n\t\tDelete all meta for the object.\n\n\n\n### wp comment meta get\n\nGet meta field value.\n\n~~~\nwp comment meta get \u003cid\u003e \u003ckey\u003e [--single] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to get.\n\n\t[--single]\n\t\tWhether to return a single value.\n\n\t[--format=\u003cformat\u003e]\n\t\tGet value in a particular format.\n\t\t---\n\t\tdefault: var_export\n\t\toptions:\n\t\t  - var_export\n\t\t  - json\n\t\t  - yaml\n\t\t---\n\n\n\n### wp comment meta list\n\nList all metadata associated with an object.\n\n~~~\nwp comment meta list \u003cid\u003e [--keys=\u003ckeys\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e] [--orderby=\u003cfields\u003e] [--order=\u003corder\u003e] [--unserialize]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tID for the object.\n\n\t[--keys=\u003ckeys\u003e]\n\t\tLimit output to metadata of specific keys.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific row fields. Defaults to id,meta_key,meta_value.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - yaml\n\t\t  - count\n\t\t---\n\n\t[--orderby=\u003cfields\u003e]\n\t\tSet orderby which field.\n\t\t---\n\t\tdefault: id\n\t\toptions:\n\t\t - id\n\t\t - meta_key\n\t\t - meta_value\n\t\t---\n\n\t[--order=\u003corder\u003e]\n\t\tSet ascending or descending order.\n\t\t---\n\t\tdefault: asc\n\t\toptions:\n\t\t - asc\n\t\t - desc\n\t\t---\n\n\t[--unserialize]\n\t\tUnserialize meta_value output.\n\n\n\n### wp comment meta patch\n\nUpdate a nested value for a meta field.\n\n~~~\nwp comment meta patch \u003caction\u003e \u003cid\u003e \u003ckey\u003e \u003ckey-path\u003e... [\u003cvalue\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003caction\u003e\n\t\tPatch action to perform.\n\t\t---\n\t\toptions:\n\t\t  - insert\n\t\t  - update\n\t\t  - delete\n\t\t---\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to update.\n\n\t\u003ckey-path\u003e...\n\t\tThe name(s) of the keys within the value to locate the value to patch.\n\n\t[\u003cvalue\u003e]\n\t\tThe new value. If omitted, the value is read from STDIN.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t---\n\n\n\n### wp comment meta pluck\n\nGet a nested value from a meta field.\n\n~~~\nwp comment meta pluck \u003cid\u003e \u003ckey\u003e \u003ckey-path\u003e... [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to get.\n\n\t\u003ckey-path\u003e...\n\t\tThe name(s) of the keys within the value to locate the value to pluck.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe output format of the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t  - yaml\n\n\n\n### wp comment meta update\n\nUpdate a meta field.\n\n~~~\nwp comment meta update \u003cid\u003e \u003ckey\u003e [\u003cvalue\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**Alias:** `set`\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to update.\n\n\t[\u003cvalue\u003e]\n\t\tThe new value. If omitted, the value is read from STDIN.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t---\n\n\n\n### wp comment recount\n\nRecalculates the comment_count value for one or more posts.\n\n~~~\nwp comment recount \u003cid\u003e...\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e...\n\t\tIDs for one or more posts to update.\n\n**EXAMPLES**\n\n    # Recount comment for the post.\n    $ wp comment recount 123\n    Updated post 123 comment count to 67.\n\n\n\n### wp comment spam\n\nMarks a comment as spam.\n\n~~~\nwp comment spam \u003cid\u003e...\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e...\n\t\tThe IDs of the comments to mark as spam.\n\n**EXAMPLES**\n\n    # Spam comment.\n    $ wp comment spam 1337\n    Success: Marked as spam comment 1337.\n\n\n\n### wp comment status\n\nGets the status of a comment.\n\n~~~\nwp comment status \u003cid\u003e\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the comment to check.\n\n**EXAMPLES**\n\n    # Get status of comment.\n    $ wp comment status 1337\n    approved\n\n\n\n### wp comment trash\n\nTrashes a comment.\n\n~~~\nwp comment trash \u003cid\u003e...\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e...\n\t\tThe IDs of the comments to trash.\n\n**EXAMPLES**\n\n    # Trash comment.\n    $ wp comment trash 1337\n    Success: Trashed comment 1337.\n\n\n\n### wp comment unapprove\n\nUnapproves a comment.\n\n~~~\nwp comment unapprove \u003cid\u003e...\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e...\n\t\tThe IDs of the comments to unapprove.\n\n**EXAMPLES**\n\n    # Unapprove comment.\n    $ wp comment unapprove 1337\n    Success: Unapproved comment 1337.\n\n\n\n### wp comment unspam\n\nUnmarks a comment as spam.\n\n~~~\nwp comment unspam \u003cid\u003e...\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e...\n\t\tThe IDs of the comments to unmark as spam.\n\n**EXAMPLES**\n\n    # Unspam comment.\n    $ wp comment unspam 1337\n    Success: Unspammed comment 1337.\n\n\n\n### wp comment untrash\n\nUntrashes a comment.\n\n~~~\nwp comment untrash \u003cid\u003e...\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e...\n\t\tThe IDs of the comments to untrash.\n\n**EXAMPLES**\n\n    # Untrash comment.\n    $ wp comment untrash 1337\n    Success: Untrashed comment 1337.\n\n\n\n### wp comment update\n\nUpdates one or more comments.\n\n~~~\nwp comment update \u003cid\u003e... --\u003cfield\u003e=\u003cvalue\u003e\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e...\n\t\tOne or more IDs of comments to update.\n\n\t--\u003cfield\u003e=\u003cvalue\u003e\n\t\tOne or more fields to update. See wp_update_comment().\n\n**EXAMPLES**\n\n    # Update comment.\n    $ wp comment update 123 --comment_author='That Guy'\n    Success: Updated comment 123.\n\n\n\n### wp font\n\nManages WordPress fonts.\n\n~~~\nwp font\n~~~\n\n**EXAMPLES**\n\n    # List all font collections\n    $ wp font collection list\n\n    # Install a font family from a collection\n    $ wp font family install google-fonts inter\n\n    # List installed font families\n    $ wp post list --post_type=wp_font_family\n\n    # List installed font faces\n    $ wp post list --post_type=wp_font_face\n\n\n\n### wp font collection\n\nManages font collections.\n\n~~~\nwp font collection\n~~~\n\nFont collections are predefined sets of fonts that can be used in WordPress.\nCollections are registered by WordPress core or themes and cannot be created\nor deleted via the command line.\n\n**EXAMPLES**\n\n    # List all font collections\n    $ wp font collection list\n    +------------------+-------------------+---------+\n    | slug             | name              | count   |\n    +------------------+-------------------+---------+\n    | google-fonts     | Google Fonts      | 1500    |\n    +------------------+-------------------+---------+\n\n    # Get details about a specific font collection\n    $ wp font collection get google-fonts\n    +-------+------------------+\n    | Field | Value            |\n    +-------+------------------+\n    | slug  | google-fonts     |\n    | name  | Google Fonts     |\n    +-------+------------------+\n\n\n\n### wp font collection get\n\nGets details about a registered font collection.\n\n~~~\nwp font collection get \u003cslug\u003e [--field=\u003cfield\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cslug\u003e\n\t\tFont collection slug.\n\n\t[--field=\u003cfield\u003e]\n\t\tInstead of returning the whole collection, returns the value of a single field.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific fields. Defaults to all fields.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - yaml\n\t\t---\n\n**AVAILABLE FIELDS**\n\nThese fields will be displayed by default for the specified collection:\n\n* slug\n* name\n* description\n* categories\n\n**EXAMPLES**\n\n    # Get details of a specific collection\n    $ wp font collection get google-fonts\n    +-------+------------------+\n    | Field | Value            |\n    +-------+------------------+\n    | slug  | google-fonts     |\n    | name  | Google Fonts     |\n    +-------+------------------+\n\n    # Get the name field only\n    $ wp font collection get google-fonts --field=name\n    Google Fonts\n\n\n\n### wp font collection is-registered\n\nChecks if a font collection is registered.\n\n~~~\nwp font collection is-registered \u003cslug\u003e\n~~~\n\n**OPTIONS**\n\n\t\u003cslug\u003e\n\t\tFont collection slug.\n\n**EXAMPLES**\n\n    # Bash script for checking if a font collection is registered, with fallback.\n\n    if wp font collection is-registered google-fonts 2\u003e/dev/null; then\n        # Font collection is registered. Do something.\n    else\n        # Fallback if collection is not registered.\n    fi\n\n\n\n### wp font collection list\n\nLists registered font collections.\n\n~~~\nwp font collection list [--field=\u003cfield\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t[--field=\u003cfield\u003e]\n\t\tPrints the value of a single field for each collection.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific collection fields.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - count\n\t\t  - yaml\n\t\t---\n\n**AVAILABLE FIELDS**\n\nThese fields will be displayed by default for each collection:\n\n* slug\n* name\n* description\n* categories\n\n**EXAMPLES**\n\n    # List all font collections\n    $ wp font collection list\n    +------------------+-------------------+\n    | slug             | name              |\n    +------------------+-------------------+\n    | google-fonts     | Google Fonts      |\n    +------------------+-------------------+\n\n    # List collections in JSON format\n    $ wp font collection list --format=json\n    [{\"slug\":\"google-fonts\",\"name\":\"Google Fonts\"}]\n\n\n\n### wp font collection list-categories\n\nLists categories in a collection.\n\n~~~\nwp font collection list-categories \u003cslug\u003e [--field=\u003cfield\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cslug\u003e\n\t\tFont collection slug.\n\n\t[--field=\u003cfield\u003e]\n\t\tPrints the value of a single field for each category.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific category fields.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - count\n\t\t  - yaml\n\t\t---\n\n**AVAILABLE FIELDS**\n\n* slug\n* name\n\n**EXAMPLES**\n\n    # List all categories in a collection\n    $ wp font collection list-categories google-fonts\n    +-------------+--------------+\n    | slug        | name         |\n    +-------------+--------------+\n    | sans-serif  | Sans Serif   |\n    | display     | Display      |\n    +-------------+--------------+\n\n\n\n### wp font collection list-families\n\nLists font families in a collection.\n\n~~~\nwp font collection list-families \u003cslug\u003e [--category=\u003cslug\u003e] [--field=\u003cfield\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cslug\u003e\n\t\tFont collection slug.\n\n\t[--category=\u003cslug\u003e]\n\t\tFilter by category slug.\n\n\t[--field=\u003cfield\u003e]\n\t\tPrints the value of a single field for each family.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific family fields.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - count\n\t\t  - yaml\n\t\t---\n\n**AVAILABLE FIELDS**\n\n* slug\n* name\n* fontFamily\n* categories\n* preview\n\n**EXAMPLES**\n\n    # List all font families in a collection\n    $ wp font collection list-families google-fonts\n\n    # List font families in a specific category\n    $ wp font collection list-families google-fonts --category=sans-serif\n\n\n\n### wp font face\n\nManages font faces.\n\n~~~\nwp font face\n~~~\n\nTo list, get, create, update or delete font faces, use `wp post` with\n`--post_type=wp_font_face`.\n\n**EXAMPLES**\n\n    # Install a font face for an existing family\n    $ wp font face install 42 --src=\"https://example.com/font.woff2\" --font-weight=700\n    Success: Created font face 43.\n\n    # List installed font faces\n    $ wp post list --post_type=wp_font_face\n\n\n\n### wp font face install\n\nInstalls a font face.\n\n~~~\nwp font face install \u003cfamily-id\u003e --src=\u003csrc\u003e [--font-family=\u003cfamily\u003e] [--font-style=\u003cstyle\u003e] [--font-weight=\u003cweight\u003e] [--font-display=\u003cdisplay\u003e] [--porcelain]\n~~~\n\nCreates a new font face post with the specified settings.\n\n**OPTIONS**\n\n\t\u003cfamily-id\u003e\n\t\tFont family ID.\n\n\t--src=\u003csrc\u003e\n\t\tFont face source URL or file path.\n\n\t[--font-family=\u003cfamily\u003e]\n\t\tCSS font-family value.\n\n\t[--font-style=\u003cstyle\u003e]\n\t\tCSS font-style value (e.g., normal, italic).\n\t\t---\n\t\tdefault: normal\n\t\t---\n\n\t[--font-weight=\u003cweight\u003e]\n\t\tCSS font-weight value (e.g., 400, 700).\n\t\t---\n\t\tdefault: 400\n\t\t---\n\n\t[--font-display=\u003cdisplay\u003e]\n\t\tCSS font-display value.\n\n\t[--porcelain]\n\t\tOutput just the new font face ID.\n\n**EXAMPLES**\n\n    # Install a font face\n    $ wp font face install 42 --src=\"https://example.com/font.woff2\" --font-weight=700 --font-style=normal\n    Success: Created font face 43.\n\n    # Install a font face with porcelain output\n    $ wp font face install 42 --src=\"font.woff2\" --porcelain\n    44\n\n\n\n### wp font family\n\nManages font families.\n\n~~~\nwp font family\n~~~\n\nTo list, get, create, update or delete font families, use `wp post` with\n`--post_type=wp_font_family`.\n\n**EXAMPLES**\n\n    # Install a font family from a collection\n    $ wp font family install google-fonts inter\n    Success: Installed font family \"Inter\" (ID: 42) with 9 font faces.\n\n    # List installed font families\n    $ wp post list --post_type=wp_font_family\n\n\n\n### wp font family install\n\nInstalls a font family from a collection.\n\n~~~\nwp font family install \u003ccollection\u003e \u003cfamily\u003e [--porcelain]\n~~~\n\nRetrieves a font family from a collection and creates the wp_font_family post\nalong with all associated font faces.\n\n**OPTIONS**\n\n\t\u003ccollection\u003e\n\t\tFont collection slug.\n\n\t\u003cfamily\u003e\n\t\tFont family slug from the collection.\n\n\t[--porcelain]\n\t\tOutput just the new font family ID.\n\n**EXAMPLES**\n\n    # Install a font family from a collection\n    $ wp font family install google-fonts inter\n    Success: Installed font family \"Inter\" (ID: 42) with 9 font faces.\n\n    # Install and get the family ID\n    $ wp font family install google-fonts roboto --porcelain\n    43\n\n\n\n### wp menu\n\nLists, creates, assigns, and deletes the active theme's navigation menus.\n\n~~~\nwp menu\n~~~\n\nSee the [Navigation Menus](https://developer.wordpress.org/themes/functionality/navigation-menus/) reference in the Theme Handbook.\n\n**EXAMPLES**\n\n    # Create a new menu\n    $ wp menu create \"My Menu\"\n    Success: Created menu 200.\n\n    # List existing menus\n    $ wp menu list\n    +---------+----------+----------+-----------+-------+\n    | term_id | name     | slug     | locations | count |\n    +---------+----------+----------+-----------+-------+\n    | 200     | My Menu  | my-menu  |           | 0     |\n    | 177     | Top Menu | top-menu | primary   | 7     |\n    +---------+----------+----------+-----------+-------+\n\n    # Create a new menu link item\n    $ wp menu item add-custom my-menu Apple http://apple.com --porcelain\n    1922\n\n    # Assign the 'my-menu' menu to the 'primary' location\n    $ wp menu location assign my-menu primary\n    Success: Assigned location primary to menu my-menu.\n\n\n\n### wp menu create\n\nCreates a new menu.\n\n~~~\nwp menu create \u003cmenu-name\u003e [--porcelain]\n~~~\n\n**OPTIONS**\n\n\t\u003cmenu-name\u003e\n\t\tA descriptive name for the menu.\n\n\t[--porcelain]\n\t\tOutput just the new menu id.\n\n**EXAMPLES**\n\n    $ wp menu create \"My Menu\"\n    Success: Created menu 200.\n\n\n\n### wp menu delete\n\nDeletes one or more menus.\n\n~~~\nwp menu delete \u003cmenu\u003e...\n~~~\n\n**OPTIONS**\n\n\t\u003cmenu\u003e...\n\t\tThe name, slug, or term ID for the menu(s).\n\n**EXAMPLES**\n\n    $ wp menu delete \"My Menu\"\n    Deleted menu 'My Menu'.\n    Success: Deleted 1 of 1 menus.\n\n\n\n### wp menu item\n\nList, add, and delete items associated with a menu.\n\n~~~\nwp menu item\n~~~\n\n**EXAMPLES**\n\n    # Add an existing post to an existing menu\n    $ wp menu item add-post sidebar-menu 33 --title=\"Custom Test Post\"\n    Success: Menu item added.\n\n    # Create a new menu link item\n    $ wp menu item add-custom sidebar-menu Apple http://apple.com\n    Success: Menu item added.\n\n    # Delete menu item\n    $ wp menu item delete 45\n    Success: Deleted 1 of 1 menu items.\n\n\n\n\n\n### wp menu item add-custom\n\nAdds a custom menu item.\n\n~~~\nwp menu item add-custom \u003cmenu\u003e \u003ctitle\u003e \u003clink\u003e [--description=\u003cdescription\u003e] [--attr-title=\u003cattr-title\u003e] [--target=\u003ctarget\u003e] [--classes=\u003cclasses\u003e] [--position=\u003cposition\u003e] [--parent-id=\u003cparent-id\u003e] [--porcelain]\n~~~\n\n**OPTIONS**\n\n\t\u003cmenu\u003e\n\t\tThe name, slug, or term ID for the menu.\n\n\t\u003ctitle\u003e\n\t\tTitle for the link.\n\n\t\u003clink\u003e\n\t\tTarget URL for the link.\n\n\t[--description=\u003cdescription\u003e]\n\t\tSet a custom description for the menu item.\n\n\t[--attr-title=\u003cattr-title\u003e]\n\t\tSet a custom title attribute for the menu item.\n\n\t[--target=\u003ctarget\u003e]\n\t\tSet a custom link target for the menu item.\n\n\t[--classes=\u003cclasses\u003e]\n\t\tSet a custom link classes for the menu item.\n\n\t[--position=\u003cposition\u003e]\n\t\tSpecify the position of this menu item.\n\n\t[--parent-id=\u003cparent-id\u003e]\n\t\tMake this menu item a child of another menu item.\n\n\t[--porcelain]\n\t\tOutput just the new menu item id.\n\n**EXAMPLES**\n\n    $ wp menu item add-custom sidebar-menu Apple http://apple.com\n    Success: Menu item added.\n\n\n\n### wp menu item add-post\n\nAdds a post as a menu item.\n\n~~~\nwp menu item add-post \u003cmenu\u003e \u003cpost-id\u003e [--title=\u003ctitle\u003e] [--link=\u003clink\u003e] [--description=\u003cdescription\u003e] [--attr-title=\u003cattr-title\u003e] [--target=\u003ctarget\u003e] [--classes=\u003cclasses\u003e] [--position=\u003cposition\u003e] [--parent-id=\u003cparent-id\u003e] [--porcelain]\n~~~\n\n**OPTIONS**\n\n\t\u003cmenu\u003e\n\t\tThe name, slug, or term ID for the menu.\n\n\t\u003cpost-id\u003e\n\t\tPost ID to add to the menu.\n\n\t[--title=\u003ctitle\u003e]\n\t\tSet a custom title for the menu item.\n\n\t[--link=\u003clink\u003e]\n\t\tSet a custom url for the menu item.\n\n\t[--description=\u003cdescription\u003e]\n\t\tSet a custom description for the menu item.\n\n\t[--attr-title=\u003cattr-title\u003e]\n\t\tSet a custom title attribute for the menu item.\n\n\t[--target=\u003ctarget\u003e]\n\t\tSet a custom link target for the menu item.\n\n\t[--classes=\u003cclasses\u003e]\n\t\tSet a custom link classes for the menu item.\n\n\t[--position=\u003cposition\u003e]\n\t\tSpecify the position of this menu item.\n\n\t[--parent-id=\u003cparent-id\u003e]\n\t\tMake this menu item a child of another menu item.\n\n\t[--porcelain]\n\t\tOutput just the new menu item id.\n\n**EXAMPLES**\n\n    $ wp menu item add-post sidebar-menu 33 --title=\"Custom Test Post\"\n    Success: Menu item added.\n\n\n\n### wp menu item add-term\n\nAdds a taxonomy term as a menu item.\n\n~~~\nwp menu item add-term \u003cmenu\u003e \u003ctaxonomy\u003e \u003cterm-id\u003e [--title=\u003ctitle\u003e] [--link=\u003clink\u003e] [--description=\u003cdescription\u003e] [--attr-title=\u003cattr-title\u003e] [--target=\u003ctarget\u003e] [--classes=\u003cclasses\u003e] [--position=\u003cposition\u003e] [--parent-id=\u003cparent-id\u003e] [--porcelain]\n~~~\n\n**OPTIONS**\n\n\t\u003cmenu\u003e\n\t\tThe name, slug, or term ID for the menu.\n\n\t\u003ctaxonomy\u003e\n\t\tTaxonomy of the term to be added.\n\n\t\u003cterm-id\u003e\n\t\tTerm ID of the term to be added.\n\n\t[--title=\u003ctitle\u003e]\n\t\tSet a custom title for the menu item.\n\n\t[--link=\u003clink\u003e]\n\t\tSet a custom url for the menu item.\n\n\t[--description=\u003cdescription\u003e]\n\t\tSet a custom description for the menu item.\n\n\t[--attr-title=\u003cattr-title\u003e]\n\t\tSet a custom title attribute for the menu item.\n\n\t[--target=\u003ctarget\u003e]\n\t\tSet a custom link target for the menu item.\n\n\t[--classes=\u003cclasses\u003e]\n\t\tSet a custom link classes for the menu item.\n\n\t[--position=\u003cposition\u003e]\n\t\tSpecify the position of this menu item.\n\n\t[--parent-id=\u003cparent-id\u003e]\n\t\tMake this menu item a child of another menu item.\n\n\t[--porcelain]\n\t\tOutput just the new menu item id.\n\n**EXAMPLES**\n\n    $ wp menu item add-term sidebar-menu post_tag 24\n    Success: Menu item added.\n\n\n\n### wp menu item delete\n\nDeletes one or more items from a menu.\n\n~~~\nwp menu item delete \u003cdb-id\u003e...\n~~~\n\n**OPTIONS**\n\n\t\u003cdb-id\u003e...\n\t\tDatabase ID for the menu item(s).\n\n**EXAMPLES**\n\n    $ wp menu item delete 45\n    Success: Deleted 1 of 1 menu items.\n\n\n\n### wp menu item get\n\nGets details about a menu item.\n\n~~~\nwp menu item get \u003cdb-id\u003e [--field=\u003cfield\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cdb-id\u003e\n\t\tDatabase ID for the menu item.\n\n\t[--field=\u003cfield\u003e]\n\t\tInstead of returning the whole menu item, returns the value of a single field.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific fields. Defaults to db_id, type, title, link, position.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - yaml\n\t\t---\n\n**AVAILABLE FIELDS**\n\nThese fields are available:\n\n* db_id\n* type\n* title\n* link\n* position\n* menu_item_parent\n* object_id\n* object\n* type_label\n* target\n* attr_title\n* description\n* classes\n* xfn\n\n**EXAMPLES**\n\n    # Get details about a menu item with ID 45\n    $ wp menu item get 45\n    +-------------+----------------------------------+\n    | Field       | Value                            |\n    +-------------+----------------------------------+\n    | db_id       | 45                               |\n    | type        | custom                           |\n    | title       | WordPress                        |\n    | link        | https://wordpress.org            |\n    | position    | 1                                |\n    +-------------+----------------------------------+\n\n    # Get a specific field from a menu item\n    $ wp menu item get 45 --field=title\n    WordPress\n\n    # Get menu item data in JSON format\n    $ wp menu item get 45 --format=json\n    {\"db_id\":45,\"type\":\"custom\",\"title\":\"WordPress\",\"link\":\"https://wordpress.org\",\"position\":1}\n\n\n\n### wp menu item list\n\nGets a list of items associated with a menu.\n\n~~~\nwp menu item list \u003cmenu\u003e [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cmenu\u003e\n\t\tThe name, slug, or term ID for the menu.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific object fields.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - count\n\t\t  - ids\n\t\t  - yaml\n\t\t---\n\n**AVAILABLE FIELDS**\n\nThese fields will be displayed by default for each menu item:\n\n* db_id\n* type\n* title\n* link\n* position\n\nThese fields are optionally available:\n\n* menu_item_parent\n* object_id\n* object\n* type\n* type_label\n* target\n* attr_title\n* description\n* classes\n* xfn\n\n**EXAMPLES**\n\n    $ wp menu item list main-menu\n    +-------+-----------+-------------+---------------------------------+----------+\n    | db_id | type      | title       | link                            | position |\n    +-------+-----------+-------------+---------------------------------+----------+\n    | 5     | custom    | Home        | http://example.com              | 1        |\n    | 6     | post_type | Sample Page | http://example.com/sample-page/ | 2        |\n    +-------+-----------+-------------+---------------------------------+----------+\n\n\n\n### wp menu item update\n\nUpdates a menu item.\n\n~~~\nwp menu item update \u003cdb-id\u003e [--title=\u003ctitle\u003e] [--link=\u003clink\u003e] [--description=\u003cdescription\u003e] [--attr-title=\u003cattr-title\u003e] [--target=\u003ctarget\u003e] [--classes=\u003cclasses\u003e] [--position=\u003cposition\u003e] [--parent-id=\u003cparent-id\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cdb-id\u003e\n\t\tDatabase ID for the menu item.\n\n\t[--title=\u003ctitle\u003e]\n\t\tSet a custom title for the menu item.\n\n\t[--link=\u003clink\u003e]\n\t\tSet a custom url for the menu item.\n\n\t[--description=\u003cdescription\u003e]\n\t\tSet a custom description for the menu item.\n\n\t[--attr-title=\u003cattr-title\u003e]\n\t\tSet a custom title attribute for the menu item.\n\n\t[--target=\u003ctarget\u003e]\n\t\tSet a custom link target for the menu item.\n\n\t[--classes=\u003cclasses\u003e]\n\t\tSet a custom link classes for the menu item.\n\n\t[--position=\u003cposition\u003e]\n\t\tSpecify the position of this menu item.\n\n\t[--parent-id=\u003cparent-id\u003e]\n\t\tMake this menu item a child of another menu item.\n\n**EXAMPLES**\n\n    $ wp menu item update 45 --title=WordPress --link='http://wordpress.org' --target=_blank --position=2\n    Success: Menu item updated.\n\n\n\n### wp menu list\n\nGets a list of menus.\n\n~~~\nwp menu list [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific object fields.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - count\n\t\t  - ids\n\t\t  - yaml\n\t\t---\n\n**AVAILABLE FIELDS**\n\nThese fields will be displayed by default for each menu:\n\n* term_id\n* name\n* slug\n* count\n\nThese fields are optionally available:\n\n* term_group\n* term_taxonomy_id\n* taxonomy\n* description\n* parent\n* locations\n\n**EXAMPLES**\n\n    $ wp menu list\n    +---------+----------+----------+-----------+-------+\n    | term_id | name     | slug     | locations | count |\n    +---------+----------+----------+-----------+-------+\n    | 200     | My Menu  | my-menu  |           | 0     |\n    | 177     | Top Menu | top-menu | primary   | 7     |\n    +---------+----------+----------+-----------+-------+\n\n\n\n### wp menu location\n\nAssigns, removes, and lists a menu's locations.\n\n~~~\nwp menu location\n~~~\n\n**EXAMPLES**\n\n    # List available menu locations\n    $ wp menu location list\n    +----------+-------------------+\n    | location | description       |\n    +----------+-------------------+\n    | primary  | Primary Menu      |\n    | social   | Social Links Menu |\n    +----------+-------------------+\n\n    # Assign the 'primary-menu' menu to the 'primary' location\n    $ wp menu location assign primary-menu primary\n    Success: Assigned location primary to menu primary-menu.\n\n    # Remove the 'primary-menu' menu from the 'primary' location\n    $ wp menu location remove primary-menu primary\n    Success: Removed location from menu.\n\n\n\n\n\n### wp menu location assign\n\nAssigns a location to a menu.\n\n~~~\nwp menu location assign \u003cmenu\u003e \u003clocation\u003e\n~~~\n\n**OPTIONS**\n\n\t\u003cmenu\u003e\n\t\tThe name, slug, or term ID for the menu.\n\n\t\u003clocation\u003e\n\t\tLocation's slug.\n\n**EXAMPLES**\n\n    $ wp menu location assign primary-menu primary\n    Success: Assigned location primary to menu primary-menu.\n\n\n\n### wp menu location list\n\nLists locations for the current theme.\n\n~~~\nwp menu location list [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - count\n\t\t  - yaml\n\t\t  - ids\n\t\t---\n\n**AVAILABLE FIELDS**\n\nThese fields will be displayed by default for each location:\n\n* name\n* description\n\n**EXAMPLES**\n\n    $ wp menu location list\n    +----------+-------------------+\n    | location | description       |\n    +----------+-------------------+\n    | primary  | Primary Menu      |\n    | social   | Social Links Menu |\n    +----------+-------------------+\n\n\n\n### wp menu location remove\n\nRemoves a location from a menu.\n\n~~~\nwp menu location remove \u003cmenu\u003e \u003clocation\u003e\n~~~\n\n**OPTIONS**\n\n\t\u003cmenu\u003e\n\t\tThe name, slug, or term ID for the menu.\n\n\t\u003clocation\u003e\n\t\tLocation's slug.\n\n**EXAMPLES**\n\n    $ wp menu location remove primary-menu primary\n    Success: Removed location from menu.\n\n\n\n### wp network\n\nPerform network-wide operations.\n\n~~~\nwp network\n~~~\n\n**EXAMPLES**\n\n    # Get a list of super-admins\n    $ wp network meta get 1 site_admins\n    array (\n      0 =\u003e 'supervisor',\n    )\n\n\n\n### wp network meta\n\nGets, adds, updates, deletes, and lists network custom fields.\n\n~~~\nwp network meta\n~~~\n\n**EXAMPLES**\n\n    # Get a list of super-admins\n    $ wp network meta get 1 site_admins\n    array (\n      0 =\u003e 'supervisor',\n    )\n\n\n\n### wp network meta add\n\nAdd a meta field.\n\n~~~\nwp network meta add \u003cid\u003e \u003ckey\u003e [\u003cvalue\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to create.\n\n\t[\u003cvalue\u003e]\n\t\tThe value of the meta field. If omitted, the value is read from STDIN.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t---\n\n\n\n### wp network meta delete\n\nDelete a meta field.\n\n~~~\nwp network meta delete \u003cid\u003e [\u003ckey\u003e] [\u003cvalue\u003e] [--all]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t[\u003ckey\u003e]\n\t\tThe name of the meta field to delete.\n\n\t[\u003cvalue\u003e]\n\t\tThe value to delete. If omitted, all rows with key will deleted.\n\n\t[--all]\n\t\tDelete all meta for the object.\n\n\n\n### wp network meta get\n\nGet meta field value.\n\n~~~\nwp network meta get \u003cid\u003e \u003ckey\u003e [--single] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to get.\n\n\t[--single]\n\t\tWhether to return a single value.\n\n\t[--format=\u003cformat\u003e]\n\t\tGet value in a particular format.\n\t\t---\n\t\tdefault: var_export\n\t\toptions:\n\t\t  - var_export\n\t\t  - json\n\t\t  - yaml\n\t\t---\n\n\n\n### wp network meta list\n\nList all metadata associated with an object.\n\n~~~\nwp network meta list \u003cid\u003e [--keys=\u003ckeys\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e] [--orderby=\u003cfields\u003e] [--order=\u003corder\u003e] [--unserialize]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tID for the object.\n\n\t[--keys=\u003ckeys\u003e]\n\t\tLimit output to metadata of specific keys.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific row fields. Defaults to id,meta_key,meta_value.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - yaml\n\t\t  - count\n\t\t---\n\n\t[--orderby=\u003cfields\u003e]\n\t\tSet orderby which field.\n\t\t---\n\t\tdefault: id\n\t\toptions:\n\t\t - id\n\t\t - meta_key\n\t\t - meta_value\n\t\t---\n\n\t[--order=\u003corder\u003e]\n\t\tSet ascending or descending order.\n\t\t---\n\t\tdefault: asc\n\t\toptions:\n\t\t - asc\n\t\t - desc\n\t\t---\n\n\t[--unserialize]\n\t\tUnserialize meta_value output.\n\n\n\n### wp network meta patch\n\nUpdate a nested value for a meta field.\n\n~~~\nwp network meta patch \u003caction\u003e \u003cid\u003e \u003ckey\u003e \u003ckey-path\u003e... [\u003cvalue\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003caction\u003e\n\t\tPatch action to perform.\n\t\t---\n\t\toptions:\n\t\t  - insert\n\t\t  - update\n\t\t  - delete\n\t\t---\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to update.\n\n\t\u003ckey-path\u003e...\n\t\tThe name(s) of the keys within the value to locate the value to patch.\n\n\t[\u003cvalue\u003e]\n\t\tThe new value. If omitted, the value is read from STDIN.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t---\n\n\n\n### wp network meta pluck\n\nGet a nested value from a meta field.\n\n~~~\nwp network meta pluck \u003cid\u003e \u003ckey\u003e \u003ckey-path\u003e... [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to get.\n\n\t\u003ckey-path\u003e...\n\t\tThe name(s) of the keys within the value to locate the value to pluck.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe output format of the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t  - yaml\n\n\n\n### wp network meta update\n\nUpdate a meta field.\n\n~~~\nwp network meta update \u003cid\u003e \u003ckey\u003e [\u003cvalue\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**Alias:** `set`\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to update.\n\n\t[\u003cvalue\u003e]\n\t\tThe new value. If omitted, the value is read from STDIN.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t---\n\n\n\n### wp option\n\nRetrieves and sets site options, including plugin and WordPress settings.\n\n~~~\nwp option\n~~~\n\nSee the [Plugin Settings API](https://developer.wordpress.org/plugins/settings/settings-api/) and the [Theme Options](https://developer.wordpress.org/themes/customize-api/) for more information on adding customized options.\n\n**COMMON OPTIONS**\n\nThese are some of the most commonly used WordPress options:\n\n* `siteurl` - Site URL, e.g. http://example.com\n* `blogname` - Site title\n* `blogdescription` - Site tagline\n* `admin_email` - Administration email address\n* `default_role` - Default role for new users\n* `timezone_string` - Local timezone, e.g. \"America/New_York\"\n* `home` - Home URL, e.g. http://example.com\n* `blog_public` - Discourage search engines when set to 0\n\nFor the full list of available options, see the [Option Reference](https://developer.wordpress.org/apis/options/).\n\n**EXAMPLES**\n\n    # Get site URL.\n    $ wp option get siteurl\n    http://example.com\n\n    # Add option.\n    $ wp option add my_option foobar\n    Success: Added 'my_option' option.\n\n    # Update option.\n    $ wp option update my_option '{\"foo\": \"bar\"}' --format=json\n    Success: Updated 'my_option' option.\n\n    # Delete option.\n    $ wp option delete my_option\n    Success: Deleted 'my_option' option.\n\n\n\n### wp option add\n\nAdds a new option value.\n\n~~~\nwp option add \u003ckey\u003e [\u003cvalue\u003e] [--format=\u003cformat\u003e] [--autoload=\u003cautoload\u003e]\n~~~\n\nErrors if the option already exists.\n\n**OPTIONS**\n\n\t\u003ckey\u003e\n\t\tThe name of the option to add.\n\n\t[\u003cvalue\u003e]\n\t\tThe value of the option to add. If omitted, the value is read from STDIN.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t---\n\n\t[--autoload=\u003cautoload\u003e]\n\t\tShould this option be automatically loaded.\n\t\t---\n\t\toptions:\n\t\t  - 'on'\n\t\t  - 'off'\n\t\t  - 'yes'\n\t\t  - 'no'\n\t\t---\n\n**EXAMPLES**\n\n    # Create an option by reading a JSON file.\n    $ wp option add my_option --format=json \u003c config.json\n    Success: Added 'my_option' option.\n\n\n\n### wp option delete\n\nDeletes an option.\n\n~~~\nwp option delete \u003ckey\u003e...\n~~~\n\n**OPTIONS**\n\n\t\u003ckey\u003e...\n\t\tKey for the option.\n\n**EXAMPLES**\n\n    # Delete an option.\n    $ wp option delete my_option\n    Success: Deleted 'my_option' option.\n\n    # Delete multiple options.\n    $ wp option delete option_one option_two option_three\n    Success: Deleted 'option_one' option.\n    Success: Deleted 'option_two' option.\n    Warning: Could not delete 'option_three' option. Does it exist?\n\n\n\n### wp option get\n\nGets the value for an option.\n\n~~~\nwp option get \u003ckey\u003e [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003ckey\u003e\n\t\tKey for the option.\n\n\t[--format=\u003cformat\u003e]\n\t\tGet value in a particular format.\n\t\t---\n\t\tdefault: var_export\n\t\toptions:\n\t\t  - var_export\n\t\t  - json\n\t\t  - yaml\n\t\t---\n\n**EXAMPLES**\n\n    # Get option.\n    $ wp option get home\n    http://example.com\n\n    # Get blog description.\n    $ wp option get blogdescription\n    A random blog description\n\n    # Get blog name\n    $ wp option get blogname\n    A random blog name\n\n    # Get admin email.\n    $ wp option get admin_email\n    someone@example.com\n\n    # Get option in JSON format.\n    $ wp option get active_plugins --format=json\n    {\"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\"}\n\n\n\n### wp option list\n\nLists options and their values.\n\n~~~\nwp option list [--search=\u003cpattern\u003e] [--exclude=\u003cpattern\u003e] [--autoload=\u003cvalue\u003e] [--transients] [--unserialize] [--field=\u003cfield\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e] [--orderby=\u003cfields\u003e] [--order=\u003corder\u003e]\n~~~\n\n**OPTIONS**\n\n\t[--search=\u003cpattern\u003e]\n\t\tUse wildcards ( * and ? ) to match option name.\n\n\t[--exclude=\u003cpattern\u003e]\n\t\tPattern to exclude. Use wildcards ( * and ? ) to match option name.\n\n\t[--autoload=\u003cvalue\u003e]\n\t\tMatch only autoload options when value is on, and only not-autoload option when off.\n\n\t[--transients]\n\t\tList only transients. Use `--no-transients` to ignore all transients.\n\n\t[--unserialize]\n\t\tUnserialize option values in output.\n\n\t[--field=\u003cfield\u003e]\n\t\tPrints the value of a single field.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific object fields.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value. total_bytes displays the total size of matching options in bytes.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - json\n\t\t  - csv\n\t\t  - count\n\t\t  - yaml\n\t\t  - total_bytes\n\t\t---\n\n\t[--orderby=\u003cfields\u003e]\n\t\tSet orderby which field.\n\t\t---\n\t\tdefault: option_id\n\t\toptions:\n\t\t - option_id\n\t\t - option_name\n\t\t - option_value\n\t\t---\n\n\t[--order=\u003corder\u003e]\n\t\tSet ascending or descending order.\n\t\t---\n\t\tdefault: asc\n\t\toptions:\n\t\t - asc\n\t\t - desc\n\t\t---\n\n**AVAILABLE FIELDS**\n\nThis field will be displayed by default for each matching option:\n\n* option_name\n* option_value\n\nThese fields are optionally available:\n\n* autoload\n* size_bytes\n\n**EXAMPLES**\n\n    # Get the total size of all autoload options.\n    $ wp option list --autoload=on --format=total_bytes\n    33198\n\n    # Find biggest transients.\n    $ wp option list --search=\"*_transient_*\" --fields=option_name,size_bytes | sort -n -k 2 | tail\n    option_name size_bytes\n    _site_transient_timeout_theme_roots 10\n    _site_transient_theme_roots 76\n    _site_transient_update_themes   181\n    _site_transient_update_core 808\n    _site_transient_update_plugins  6645\n\n    # List all options beginning with \"i2f_\".\n    $ wp option list --search=\"i2f_*\"\n    +-------------+--------------+\n    | option_name | option_value |\n    +-------------+--------------+\n    | i2f_version | 0.1.0        |\n    +-------------+--------------+\n\n    # Delete all options beginning with \"theme_mods_\".\n    $ wp option list --search=\"theme_mods_*\" --field=option_name | xargs -I % wp option delete %\n    Success: Deleted 'theme_mods_twentysixteen' option.\n    Success: Deleted 'theme_mods_twentyfifteen' option.\n    Success: Deleted 'theme_mods_twentyfourteen' option.\n\n\n\n### wp option patch\n\nUpdates a nested value in an option.\n\n~~~\nwp option patch \u003caction\u003e \u003ckey\u003e \u003ckey-path\u003e... [\u003cvalue\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003caction\u003e\n\t\tPatch action to perform.\n\t\t---\n\t\toptions:\n\t\t  - insert\n\t\t  - update\n\t\t  - delete\n\t\t---\n\n\t\u003ckey\u003e\n\t\tThe option name.\n\n\t\u003ckey-path\u003e...\n\t\tThe name(s) of the keys within the value to locate the value to patch.\n\n\t[\u003cvalue\u003e]\n\t\tThe new value. If omitted, the value is read from STDIN.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t---\n\n**EXAMPLES**\n\n    # Add 'bar' to the 'foo' key on an option with name 'option_name'\n    $ wp option patch insert option_name foo bar\n    Success: Updated 'option_name' option.\n\n    # Update the value of 'foo' key to 'new' on an option with name 'option_name'\n    $ wp option patch update option_name foo new\n    Success: Updated 'option_name' option.\n\n    # Set nested value of 'bar' key to value we have in the patch file on an option with name 'option_name'.\n    $ wp option patch update option_name foo bar \u003c patch\n    Success: Updated 'option_name' option.\n\n    # Update the value for the key 'not-a-key' which is not exist on an option with name 'option_name'.\n    $ wp option patch update option_name foo not-a-key new-value\n    Error: No data exists for key \"not-a-key\"\n\n    # Update the value for the key 'foo' without passing value on an option with name 'option_name'.\n    $ wp option patch update option_name foo\n    Error: Please provide value to update.\n\n    # Delete the nested key 'bar' under 'foo' key on an option with name 'option_name'.\n    $ wp option patch delete option_name foo bar\n    Success: Updated 'option_name' option.\n\n\n\n### wp option pluck\n\nGets a nested value from an option.\n\n~~~\nwp option pluck \u003ckey\u003e \u003ckey-path\u003e... [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003ckey\u003e\n\t\tThe option name.\n\n\t\u003ckey-path\u003e...\n\t\tThe name(s) of the keys within the value to locate the value to pluck.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe output format of the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t  - yaml\n\t\t---\n\n\n\n### wp option update\n\nUpdates an option value.\n\n~~~\nwp option update \u003ckey\u003e [\u003cvalue\u003e] [--autoload=\u003cautoload\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**Alias:** `set`\n\n**OPTIONS**\n\n\t\u003ckey\u003e\n\t\tThe name of the option to update.\n\n\t[\u003cvalue\u003e]\n\t\tThe new value. If omitted, the value is read from STDIN.\n\n\t[--autoload=\u003cautoload\u003e]\n\t\tRequires WP 4.2. Should this option be automatically loaded.\n\t\t---\n\t\toptions:\n\t\t  - 'on'\n\t\t  - 'off'\n\t\t  - 'yes'\n\t\t  - 'no'\n\t\t---\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t---\n\n**EXAMPLES**\n\n    # Update an option by reading from a file.\n    $ wp option update my_option \u003c value.txt\n    Success: Updated 'my_option' option.\n\n    # Update one option on multiple sites using xargs.\n    $ wp site list --field=url | xargs -n1 -I {} sh -c 'wp --url={} option update my_option my_value'\n    Success: Updated 'my_option' option.\n    Success: Updated 'my_option' option.\n\n    # Update site blog name.\n    $ wp option update blogname \"Random blog name\"\n    Success: Updated 'blogname' option.\n\n    # Update site blog description.\n    $ wp option update blogdescription \"Some random blog description\"\n    Success: Updated 'blogdescription' option.\n\n    # Update admin email address.\n    $ wp option update admin_email someone@example.com\n    Success: Updated 'admin_email' option.\n\n    # Set the default role.\n    $ wp option update default_role author\n    Success: Updated 'default_role' option.\n\n    # Set the timezone string.\n    $ wp option update timezone_string \"America/New_York\"\n    Success: Updated 'timezone_string' option.\n\n\n\n### wp option set-autoload\n\nSets the 'autoload' value for an option.\n\n~~~\nwp option set-autoload \u003ckey\u003e \u003cautoload\u003e\n~~~\n\n**OPTIONS**\n\n\t\u003ckey\u003e\n\t\tThe name of the option to set 'autoload' for.\n\n\t\u003cautoload\u003e\n\t\tShould this option be automatically loaded.\n\t\t---\n\t\toptions:\n\t\t  - 'on'\n\t\t  - 'off'\n\t\t  - 'yes'\n\t\t  - 'no'\n\t\t---\n\n**EXAMPLES**\n\n    # Set the 'autoload' value for an option.\n    $ wp option set-autoload abc_options no\n    Success: Updated autoload value for 'abc_options' option.\n\n\n\n### wp option get-autoload\n\nGets the 'autoload' value for an option.\n\n~~~\nwp option get-autoload \u003ckey\u003e\n~~~\n\n**OPTIONS**\n\n\t\u003ckey\u003e\n\t\tThe name of the option to get 'autoload' of.\n\n**EXAMPLES**\n\n    # Get the 'autoload' value for an option.\n    $ wp option get-autoload blogname\n    yes\n\n\n\n### wp post\n\nManages posts, content, and meta.\n\n~~~\nwp post\n~~~\n\n**EXAMPLES**\n\n    # Create a new post.\n    $ wp post create --post_type=post --post_title='A sample post'\n    Success: Created post 123.\n\n    # Update an existing post.\n    $ wp post update 123 --post_status=draft\n    Success: Updated post 123.\n\n    # Delete an existing post.\n    $ wp post delete 123\n    Success: Trashed post 123.\n\n\n\n### wp post create\n\nCreates a new post.\n\n~~~\nwp post create [--post_author=\u003cpost_author\u003e] [--post_date=\u003cpost_date\u003e] [--post_date_gmt=\u003cpost_date_gmt\u003e] [--post_content=\u003cpost_content\u003e] [--post_content_filtered=\u003cpost_content_filtered\u003e] [--post_title=\u003cpost_title\u003e] [--post_excerpt=\u003cpost_excerpt\u003e] [--post_status=\u003cpost_status\u003e] [--post_type=\u003cpost_type\u003e] [--comment_status=\u003ccomment_status\u003e] [--ping_status=\u003cping_status\u003e] [--post_password=\u003cpost_password\u003e] [--post_name=\u003cpost_name\u003e] [--from-post=\u003cpost_id\u003e] [--to_ping=\u003cto_ping\u003e] [--pinged=\u003cpinged\u003e] [--post_modified=\u003cpost_modified\u003e] [--post_modified_gmt=\u003cpost_modified_gmt\u003e] [--post_parent=\u003cpost_parent\u003e] [--menu_order=\u003cmenu_order\u003e] [--post_mime_type=\u003cpost_mime_type\u003e] [--guid=\u003cguid\u003e] [--post_category=\u003cpost_category\u003e] [--tags_input=\u003ctags_input\u003e] [--tax_input=\u003ctax_input\u003e] [--meta_input=\u003cmeta_input\u003e] [\u003cfile\u003e] [--\u003cfield\u003e=\u003cvalue\u003e] [--edit] [--porcelain]\n~~~\n\n**OPTIONS**\n\n\t[--post_author=\u003cpost_author\u003e]\n\t\tThe ID of the user who added the post. Default is the current user ID.\n\n\t[--post_date=\u003cpost_date\u003e]\n\t\tThe date of the post. Default is the current time.\n\n\t[--post_date_gmt=\u003cpost_date_gmt\u003e]\n\t\tThe date of the post in the GMT timezone. Default is the value of $post_date.\n\n\t[--post_content=\u003cpost_content\u003e]\n\t\tThe post content. Default empty.\n\n\t[--post_content_filtered=\u003cpost_content_filtered\u003e]\n\t\tThe filtered post content. Default empty.\n\n\t[--post_title=\u003cpost_title\u003e]\n\t\tThe post title. Default empty.\n\n\t[--post_excerpt=\u003cpost_excerpt\u003e]\n\t\tThe post excerpt. Default empty.\n\n\t[--post_status=\u003cpost_status\u003e]\n\t\tThe post status. Default 'draft'.\n\n\t[--post_type=\u003cpost_type\u003e]\n\t\tThe post type. Default 'post'.\n\n\t[--comment_status=\u003ccomment_status\u003e]\n\t\tWhether the post can accept comments. Accepts 'open' or 'closed'. Default is the value of 'default_comment_status' option.\n\n\t[--ping_status=\u003cping_status\u003e]\n\t\tWhether the post can accept pings. Accepts 'open' or 'closed'. Default is the value of 'default_ping_status' option.\n\n\t[--post_password=\u003cpost_password\u003e]\n\t\tThe password to access the post. Default empty.\n\n\t[--post_name=\u003cpost_name\u003e]\n\t\tThe post name. Default is the sanitized post title when creating a new post.\n\n\t[--from-post=\u003cpost_id\u003e]\n\t\tPost id of a post to be duplicated.\n\n\t[--to_ping=\u003cto_ping\u003e]\n\t\tSpace or carriage return-separated list of URLs to ping. Default empty.\n\n\t[--pinged=\u003cpinged\u003e]\n\t\tSpace or carriage return-separated list of URLs that have been pinged. Default empty.\n\n\t[--post_modified=\u003cpost_modified\u003e]\n\t\tThe date when the post was last modified. Default is the current time.\n\n\t[--post_modified_gmt=\u003cpost_modified_gmt\u003e]\n\t\tThe date when the post was last modified in the GMT timezone. Default is the current time.\n\n\t[--post_parent=\u003cpost_parent\u003e]\n\t\tSet this for the post it belongs to, if any. Default 0.\n\n\t[--menu_order=\u003cmenu_order\u003e]\n\t\tThe order the post should be displayed in. Default 0.\n\n\t[--post_mime_type=\u003cpost_mime_type\u003e]\n\t\tThe mime type of the post. Default empty.\n\n\t[--guid=\u003cguid\u003e]\n\t\tGlobal Unique ID for referencing the post. Default empty.\n\n\t[--post_category=\u003cpost_category\u003e]\n\t\tArray of category names, slugs, or IDs. Defaults to value of the 'default_category' option.\n\n\t[--tags_input=\u003ctags_input\u003e]\n\t\tArray of tag names, slugs, or IDs. Default empty.\n\n\t[--tax_input=\u003ctax_input\u003e]\n\t\tArray of taxonomy terms keyed by their taxonomy name. Default empty.\n\n\t\tNote: In WordPress core, this normally requires a user context to satisfy capability checks. WP-CLI bypasses this for convenience. See https://core.trac.wordpress.org/ticket/19373\n\n\t[--meta_input=\u003cmeta_input\u003e]\n\t\tArray in JSON format of post meta values keyed by their post meta key. Default empty.\n\n\t[\u003cfile\u003e]\n\t\tRead post content from \u003cfile\u003e. If this value is present, the\n\t\t    `--post_content` argument will be ignored.\n\n\t\tPassing `-` as the filename will cause post content to\n\t\tbe read from STDIN.\n\n\t[--\u003cfield\u003e=\u003cvalue\u003e]\n\t\tAssociative args for the new post. See wp_insert_post().\n\n\t[--edit]\n\t\tImmediately open system's editor to write or edit post content.\n\n\t\tIf content is read from a file, from STDIN, or from the `--post_content`\n\t\targument, that text will be loaded into the editor.\n\n\t[--porcelain]\n\t\tOutput just the new post id.\n\n**EXAMPLES**\n\n    # Create post and schedule for future\n    $ wp post create --post_type=post --post_title='A future post' --post_status=future --post_date='2030-12-01 07:00:00'\n    Success: Created post 1921.\n\n    # Create post with content from given file\n    $ wp post create ./post-content.txt --post_category=201,345 --post_title='Post from file'\n    Success: Created post 1922.\n\n    # Create a post with multiple meta values.\n    $ wp post create --post_title='A post' --post_content='Just a small post.' --meta_input='{\"key1\":\"value1\",\"key2\":\"value2\"}'\n    Success: Created post 1923.\n\n    # Create a duplicate post from existing posts.\n    $ wp post create --from-post=123 --post_title='Different Title'\n    Success: Created post 2350.\n\n\n\n### wp post delete\n\nDeletes an existing post.\n\n~~~\nwp post delete \u003cid\u003e... [--force] [--defer-term-counting]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e...\n\t\tOne or more IDs of posts to delete.\n\n\t[--force]\n\t\tSkip the trash bin.\n\n\t[--defer-term-counting]\n\t\tRecalculate term count in batch, for a performance boost.\n\n**EXAMPLES**\n\n    # Delete post skipping trash\n    $ wp post delete 123 --force\n    Success: Deleted post 123.\n\n    # Delete multiple posts\n    $ wp post delete 123 456 789\n    Success: Trashed post 123.\n    Success: Trashed post 456.\n    Success: Trashed post 789.\n\n    # Delete all pages\n    $ wp post delete $(wp post list --post_type='page' --format=ids)\n    Success: Trashed post 1164.\n    Success: Trashed post 1186.\n\n    # Delete all posts in the trash\n    $ wp post delete $(wp post list --post_status=trash --format=ids)\n    Success: Deleted post 1268.\n    Success: Deleted post 1294.\n\n\n\n### wp post edit\n\nLaunches system editor to edit post content.\n\n~~~\nwp post edit \u003cid\u003e\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to edit.\n\n**EXAMPLES**\n\n    # Launch system editor to edit post\n    $ wp post edit 123\n\n\n\n### wp post exists\n\nVerifies whether a post exists.\n\n~~~\nwp post exists \u003cid\u003e\n~~~\n\nDisplays a success message if the post does exist.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to check.\n\n**EXAMPLES**\n\n    # The post exists.\n    $ wp post exists 1337\n    Success: Post with ID 1337 exists.\n    $ echo $?\n    0\n\n    # The post does not exist.\n    $ wp post exists 10000\n    $ echo $?\n    1\n\n\n\n### wp post generate\n\nGenerates some posts.\n\n~~~\nwp post generate [--count=\u003cnumber\u003e] [--post_type=\u003ctype\u003e] [--post_status=\u003cstatus\u003e] [--post_title=\u003cpost_title\u003e] [--post_author=\u003clogin\u003e] [--post_date=\u003cyyyy-mm-dd-hh-ii-ss\u003e] [--post_date_gmt=\u003cyyyy-mm-dd-hh-ii-ss\u003e] [--post_content] [--max_depth=\u003cnumber\u003e] [--format=\u003cformat\u003e]\n~~~\n\nCreates a specified number of new posts with dummy data.\n\n**OPTIONS**\n\n\t[--count=\u003cnumber\u003e]\n\t\tHow many posts to generate?\n\t\t---\n\t\tdefault: 100\n\t\t---\n\n\t[--post_type=\u003ctype\u003e]\n\t\tThe type of the generated posts.\n\t\t---\n\t\tdefault: post\n\t\t---\n\n\t[--post_status=\u003cstatus\u003e]\n\t\tThe status of the generated posts.\n\t\t---\n\t\tdefault: publish\n\t\t---\n\n\t[--post_title=\u003cpost_title\u003e]\n\t\tThe post title.\n\t\t---\n\t\tdefault:\n\t\t---\n\n\t[--post_author=\u003clogin\u003e]\n\t\tThe author of the generated posts.\n\t\t---\n\t\tdefault:\n\t\t---\n\n\t[--post_date=\u003cyyyy-mm-dd-hh-ii-ss\u003e]\n\t\tThe date of the post. Default is the current time.\n\n\t[--post_date_gmt=\u003cyyyy-mm-dd-hh-ii-ss\u003e]\n\t\tThe date of the post in the GMT timezone. Default is the value of --post_date.\n\n\t[--post_content]\n\t\tIf set, the command reads the post_content from STDIN.\n\n\t[--max_depth=\u003cnumber\u003e]\n\t\tFor hierarchical post types, generate child posts down to a certain depth.\n\t\t---\n\t\tdefault: 1\n\t\t---\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: progress\n\t\toptions:\n\t\t  - progress\n\t\t  - ids\n\t\t---\n\n**EXAMPLES**\n\n    # Generate posts.\n    $ wp post generate --count=10 --post_type=page --post_date=1999-01-04\n    Generating posts  100% [================================================] 0:01 / 0:04\n\n    # Generate posts with fetched content.\n    $ curl -N https://loripsum.net/api/5 | wp post generate --post_content --count=10\n      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                     Dload  Upload   Total   Spent    Left  Speed\n    100  2509  100  2509    0     0    616      0  0:00:04  0:00:04 --:--:--   616\n    Generating posts  100% [================================================] 0:01 / 0:04\n\n    # Add meta to every generated posts.\n    $ wp post generate --format=ids | xargs -d ' ' -I % wp post meta add % foo bar\n    Success: Added custom field.\n    Success: Added custom field.\n    Success: Added custom field.\n\n\n\n### wp post get\n\nGets details about a post.\n\n~~~\nwp post get \u003cid\u003e [--field=\u003cfield\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to get.\n\n\t[--field=\u003cfield\u003e]\n\t\tInstead of returning the whole post, returns the value of a single field.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific fields. Defaults to all fields.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - yaml\n\t\t---\n\n**EXAMPLES**\n\n    # Save the post content to a file\n    $ wp post get 123 --field=content \u003e file.txt\n\n    # Get the block version of a post (1 = has blocks, 0 = no blocks)\n    # Requires WordPress 5.0+.\n    $ wp post get 123 --field=block_version\n    1\n\n\n\n### wp post list\n\nGets a list of posts.\n\n~~~\nwp post list [--\u003cfield\u003e=\u003cvalue\u003e] [--field=\u003cfield\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e]\n~~~\n\nDisplay posts based on all arguments supported by [WP_Query()](https://developer.wordpress.org/reference/classes/wp_query/).\nOnly shows post types marked as post by default.\n\n**OPTIONS**\n\n\t[--\u003cfield\u003e=\u003cvalue\u003e]\n\t\tOne or more args to pass to WP_Query.\n\n\t[--field=\u003cfield\u003e]\n\t\tPrints the value of a single field for each post.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific object fields.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - ids\n\t\t  - json\n\t\t  - count\n\t\t  - yaml\n\t\t---\n\n**AVAILABLE FIELDS**\n\nThese fields will be displayed by default for each post:\n\n* ID\n* post_title\n* post_name\n* post_date\n* post_status\n\nThese fields are optionally available:\n\n* post_author\n* post_date_gmt\n* post_content\n* post_excerpt\n* comment_status\n* ping_status\n* post_password\n* to_ping\n* pinged\n* post_modified\n* post_modified_gmt\n* post_content_filtered\n* post_parent\n* guid\n* menu_order\n* post_type\n* post_mime_type\n* comment_count\n* filter\n* url\n\n**EXAMPLES**\n\n    # List post\n    $ wp post list --field=ID\n    568\n    829\n    1329\n    1695\n\n    # List posts in JSON\n    $ wp post list --post_type=post --posts_per_page=5 --format=json\n    [{\"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\"}]\n\n    # List all pages\n    $ wp post list --post_type=page --fields=post_title,post_status\n    +-------------+-------------+\n    | post_title  | post_status |\n    +-------------+-------------+\n    | Sample Page | publish     |\n    +-------------+-------------+\n\n    # List ids of all pages and posts\n    $ wp post list --post_type=page,post --format=ids\n    15 25 34 37 198\n\n    # List given posts\n    $ wp post list --post__in=1,3\n    +----+--------------+-------------+---------------------+-------------+\n    | ID | post_title   | post_name   | post_date           | post_status |\n    +----+--------------+-------------+---------------------+-------------+\n    | 3  | Lorem Ipsum  | lorem-ipsum | 2016-06-01 14:34:36 | publish     |\n    | 1  | Hello world! | hello-world | 2016-06-01 14:31:12 | publish     |\n    +----+--------------+-------------+---------------------+-------------+\n\n    # List given post by a specific author\n    $ wp post list --author=2\n    +----+-------------------+-------------------+---------------------+-------------+\n    | ID | post_title        | post_name         | post_date           | post_status |\n    +----+-------------------+-------------------+---------------------+-------------+\n    | 14 | New documentation | new-documentation | 2021-06-18 21:05:11 | publish     |\n    +----+-------------------+-------------------+---------------------+-------------+\n\n\n\n### wp post meta\n\nAdds, updates, deletes, and lists post custom fields.\n\n~~~\nwp post meta\n~~~\n\n**EXAMPLES**\n\n    # Set post meta\n    $ wp post meta set 123 _wp_page_template about.php\n    Success: Updated custom field '_wp_page_template'.\n\n    # Get post meta\n    $ wp post meta get 123 _wp_page_template\n    about.php\n\n    # Update post meta\n    $ wp post meta update 123 _wp_page_template contact.php\n    Success: Updated custom field '_wp_page_template'.\n\n    # Delete post meta\n    $ wp post meta delete 123 _wp_page_template\n    Success: Deleted custom field.\n\n\n\n\n\n### wp post meta add\n\nAdd a meta field.\n\n~~~\nwp post meta add \u003cid\u003e \u003ckey\u003e [\u003cvalue\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to create.\n\n\t[\u003cvalue\u003e]\n\t\tThe value of the meta field. If omitted, the value is read from STDIN.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t---\n\n\n\n### wp post meta clean-duplicates\n\nCleans up duplicate post meta values on a post.\n\n~~~\nwp post meta clean-duplicates \u003cid\u003e \u003ckey\u003e\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tID of the post to clean.\n\n\t\u003ckey\u003e\n\t\tMeta key to clean up.\n\n**EXAMPLES**\n\n    # Delete duplicate post meta.\n    wp post meta clean-duplicates 1234 enclosure\n    Success: Cleaned up duplicate 'enclosure' meta values.\n\n\n\n### wp post meta delete\n\nDelete a meta field.\n\n~~~\nwp post meta delete \u003cid\u003e [\u003ckey\u003e] [\u003cvalue\u003e] [--all]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t[\u003ckey\u003e]\n\t\tThe name of the meta field to delete.\n\n\t[\u003cvalue\u003e]\n\t\tThe value to delete. If omitted, all rows with key will deleted.\n\n\t[--all]\n\t\tDelete all meta for the object.\n\n\n\n### wp post meta get\n\nGet meta field value.\n\n~~~\nwp post meta get \u003cid\u003e \u003ckey\u003e [--single] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to get.\n\n\t[--single]\n\t\tWhether to return a single value.\n\n\t[--format=\u003cformat\u003e]\n\t\tGet value in a particular format.\n\t\t---\n\t\tdefault: var_export\n\t\toptions:\n\t\t  - var_export\n\t\t  - json\n\t\t  - yaml\n\t\t---\n\n\n\n### wp post meta list\n\nList all metadata associated with an object.\n\n~~~\nwp post meta list \u003cid\u003e [--keys=\u003ckeys\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e] [--orderby=\u003cfields\u003e] [--order=\u003corder\u003e] [--unserialize]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tID for the object.\n\n\t[--keys=\u003ckeys\u003e]\n\t\tLimit output to metadata of specific keys.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific row fields. Defaults to id,meta_key,meta_value.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - yaml\n\t\t  - count\n\t\t---\n\n\t[--orderby=\u003cfields\u003e]\n\t\tSet orderby which field.\n\t\t---\n\t\tdefault: id\n\t\toptions:\n\t\t - id\n\t\t - meta_key\n\t\t - meta_value\n\t\t---\n\n\t[--order=\u003corder\u003e]\n\t\tSet ascending or descending order.\n\t\t---\n\t\tdefault: asc\n\t\toptions:\n\t\t - asc\n\t\t - desc\n\t\t---\n\n\t[--unserialize]\n\t\tUnserialize meta_value output.\n\n\n\n### wp post meta patch\n\nUpdate a nested value for a meta field.\n\n~~~\nwp post meta patch \u003caction\u003e \u003cid\u003e \u003ckey\u003e \u003ckey-path\u003e... [\u003cvalue\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003caction\u003e\n\t\tPatch action to perform.\n\t\t---\n\t\toptions:\n\t\t  - insert\n\t\t  - update\n\t\t  - delete\n\t\t---\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to update.\n\n\t\u003ckey-path\u003e...\n\t\tThe name(s) of the keys within the value to locate the value to patch.\n\n\t[\u003cvalue\u003e]\n\t\tThe new value. If omitted, the value is read from STDIN.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t---\n\n\n\n### wp post meta pluck\n\nGet a nested value from a meta field.\n\n~~~\nwp post meta pluck \u003cid\u003e \u003ckey\u003e \u003ckey-path\u003e... [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to get.\n\n\t\u003ckey-path\u003e...\n\t\tThe name(s) of the keys within the value to locate the value to pluck.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe output format of the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t  - yaml\n\n\n\n### wp post meta update\n\nUpdate a meta field.\n\n~~~\nwp post meta update \u003cid\u003e \u003ckey\u003e [\u003cvalue\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**Alias:** `set`\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ckey\u003e\n\t\tThe name of the meta field to update.\n\n\t[\u003cvalue\u003e]\n\t\tThe new value. If omitted, the value is read from STDIN.\n\n\t[--format=\u003cformat\u003e]\n\t\tThe serialization format for the value.\n\t\t---\n\t\tdefault: plaintext\n\t\toptions:\n\t\t  - plaintext\n\t\t  - json\n\t\t---\n\n\n\n### wp post revision\n\nManages post revisions.\n\n~~~\nwp post revision\n~~~\n\n**EXAMPLES**\n\n    # Restore a post revision\n    $ wp post revision restore 123\n    Success: Restored revision 123.\n\n    # Show diff between two revisions\n    $ wp post revision diff 123 456\n\n\n\n\n\n### wp post revision diff\n\nShows the difference between two revisions.\n\n~~~\nwp post revision diff \u003cfrom\u003e [\u003cto\u003e] [--field=\u003cfield\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cfrom\u003e\n\t\tThe 'from' revision ID or post ID.\n\n\t[\u003cto\u003e]\n\t\tThe 'to' revision ID or post ID. If not provided, compares with the current post.\n\n\t[--field=\u003cfield\u003e]\n\t\tCompare specific field(s). Default: post_content\n\n**EXAMPLES**\n\n    # Show diff between two revisions\n    $ wp post revision diff 123 456\n\n    # Show diff between a revision and the current post\n    $ wp post revision diff 123\n\n\n\n### wp post revision prune\n\nDeletes old post revisions.\n\n~~~\nwp post revision prune [\u003cpost-id\u003e...] [--latest=\u003climit\u003e] [--earliest=\u003climit\u003e] [--yes]\n~~~\n\n**OPTIONS**\n\n\t[\u003cpost-id\u003e...]\n\t\tOne or more post IDs to prune revisions for. If not provided, prunes revisions for all posts.\n\n\t[--latest=\u003climit\u003e]\n\t\tKeep only the latest N revisions per post. Older revisions will be deleted.\n\n\t[--earliest=\u003climit\u003e]\n\t\tKeep only the earliest N revisions per post. Newer revisions will be deleted.\n\n\t[--yes]\n\t\tSkip confirmation prompt.\n\n**EXAMPLES**\n\n    # Delete all but the latest 5 revisions for post 123\n    $ wp post revision prune 123 --latest=5\n    Success: Deleted 3 revisions for post 123.\n\n    # Delete all but the latest 5 revisions for all posts\n    $ wp post revision prune --latest=5\n    Success: Deleted 150 revisions across 30 posts.\n\n    # Delete all but the earliest 2 revisions for posts 123 and 456\n    $ wp post revision prune 123 456 --earliest=2\n    Success: Deleted 5 revisions for post 123.\n    Success: Deleted 3 revisions for post 456.\n\n\n\n### wp post revision restore\n\nRestores a post revision.\n\n~~~\nwp post revision restore \u003crevision_id\u003e\n~~~\n\n**OPTIONS**\n\n\t\u003crevision_id\u003e\n\t\tThe revision ID to restore.\n\n**EXAMPLES**\n\n    # Restore a post revision\n    $ wp post revision restore 123\n    Success: Restored revision 123.\n\n\n\n### wp post term\n\nAdds, updates, removes, and lists post terms.\n\n~~~\nwp post term\n~~~\n\n**EXAMPLES**\n\n    # Set category post term `test` to the post ID 123\n    $ wp post term set 123 test category\n    Success: Set term.\n\n    # Set category post terms `test` and `apple` to the post ID 123\n    $ wp post term set 123 test apple category\n    Success: Set terms.\n\n    # List category post terms for the post ID 123\n    $ wp post term list 123 category --fields=term_id,slug\n    +---------+-------+\n    | term_id | slug  |\n    +---------+-------+\n    | 2       | apple |\n    | 3       | test  |\n    +----------+------+\n\n    # Remove category post terms `test` and `apple` for the post ID 123\n    $ wp post term remove 123 category test apple\n    Success: Removed terms.\n\n\n\n\n\n### wp post term add\n\nAdd a term to an object.\n\n~~~\nwp post term add \u003cid\u003e \u003ctaxonomy\u003e \u003cterm\u003e... [--by=\u003cfield\u003e]\n~~~\n\nAppend the term to the existing set of terms on the object.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ctaxonomy\u003e\n\t\tThe name of the taxonomy type to be added.\n\n\t\u003cterm\u003e...\n\t\tThe slug of the term or terms to be added.\n\n\t[--by=\u003cfield\u003e]\n\t\tExplicitly handle the term value as a slug or id.\n\t\t---\n\t\tdefault: slug\n\t\toptions:\n\t\t  - slug\n\t\t  - id\n\t\t---\n\n\n\n### wp post term list\n\nList all terms associated with an object.\n\n~~~\nwp post term list \u003cid\u003e \u003ctaxonomy\u003e... [--field=\u003cfield\u003e] [--fields=\u003cfields\u003e] [--format=\u003cformat\u003e]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tID for the object.\n\n\t\u003ctaxonomy\u003e...\n\t\tOne or more taxonomies to list.\n\n\t[--field=\u003cfield\u003e]\n\t\tPrints the value of a single field for each term.\n\n\t[--fields=\u003cfields\u003e]\n\t\tLimit the output to specific row fields.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - yaml\n\t\t  - count\n\t\t  - ids\n\t\t---\n\n**AVAILABLE FIELDS**\n\nThese fields will be displayed by default for each term:\n\n* term_id\n* name\n* slug\n* taxonomy\n\nThese fields are optionally available:\n\n* term_taxonomy_id\n* description\n* term_group\n* parent\n* count\n\n\n\n### wp post term remove\n\nRemove a term from an object.\n\n~~~\nwp post term remove \u003cid\u003e \u003ctaxonomy\u003e [\u003cterm\u003e...] [--by=\u003cfield\u003e] [--all]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ctaxonomy\u003e\n\t\tThe name of the term's taxonomy.\n\n\t[\u003cterm\u003e...]\n\t\tThe slug of the term or terms to be removed from the object.\n\n\t[--by=\u003cfield\u003e]\n\t\tExplicitly handle the term value as a slug or id.\n\t\t---\n\t\tdefault: slug\n\t\toptions:\n\t\t  - slug\n\t\t  - id\n\t\t---\n\n\t[--all]\n\t\tRemove all terms from the object.\n\n\n\n### wp post term set\n\nSet object terms.\n\n~~~\nwp post term set \u003cid\u003e \u003ctaxonomy\u003e \u003cterm\u003e... [--by=\u003cfield\u003e]\n~~~\n\nReplaces existing terms on the object.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the object.\n\n\t\u003ctaxonomy\u003e\n\t\tThe name of the taxonomy type to be updated.\n\n\t\u003cterm\u003e...\n\t\tThe slug of the term or terms to be updated.\n\n\t[--by=\u003cfield\u003e]\n\t\tExplicitly handle the term value as a slug or id.\n\t\t---\n\t\tdefault: slug\n\t\toptions:\n\t\t  - slug\n\t\t  - id\n\t\t---\n\n\n\n### wp post update\n\nUpdates one or more existing posts.\n\n~~~\nwp post update \u003cid\u003e... [--post_author=\u003cpost_author\u003e] [--post_date=\u003cpost_date\u003e] [--post_date_gmt=\u003cpost_date_gmt\u003e] [--post_content=\u003cpost_content\u003e] [--post_content_filtered=\u003cpost_content_filtered\u003e] [--post_title=\u003cpost_title\u003e] [--post_excerpt=\u003cpost_excerpt\u003e] [--post_status=\u003cpost_status\u003e] [--post_type=\u003cpost_type\u003e] [--comment_status=\u003ccomment_status\u003e] [--ping_status=\u003cping_status\u003e] [--post_password=\u003cpost_password\u003e] [--post_name=\u003cpost_name\u003e] [--to_ping=\u003cto_ping\u003e] [--pinged=\u003cpinged\u003e] [--post_modified=\u003cpost_modified\u003e] [--post_modified_gmt=\u003cpost_modified_gmt\u003e] [--post_parent=\u003cpost_parent\u003e] [--menu_order=\u003cmenu_order\u003e] [--post_mime_type=\u003cpost_mime_type\u003e] [--guid=\u003cguid\u003e] [--post_category=\u003cpost_category\u003e] [--tags_input=\u003ctags_input\u003e] [--tax_input=\u003ctax_input\u003e] [--meta_input=\u003cmeta_input\u003e] [\u003cfile\u003e] --\u003cfield\u003e=\u003cvalue\u003e [--defer-term-counting]\n~~~\n\n**OPTIONS**\n\n\t\u003cid\u003e...\n\t\tOne or more IDs of posts to update.\n\n\t[--post_author=\u003cpost_author\u003e]\n\t\tThe ID of the user who added the post. Default is the current user ID.\n\n\t[--post_date=\u003cpost_date\u003e]\n\t\tThe date of the post. Default is the current time.\n\n\t[--post_date_gmt=\u003cpost_date_gmt\u003e]\n\t\tThe date of the post in the GMT timezone. Default is the value of $post_date.\n\n\t[--post_content=\u003cpost_content\u003e]\n\t\tThe post content. Default empty.\n\n\t[--post_content_filtered=\u003cpost_content_filtered\u003e]\n\t\tThe filtered post content. Default empty.\n\n\t[--post_title=\u003cpost_title\u003e]\n\t\tThe post title. Default empty.\n\n\t[--post_excerpt=\u003cpost_excerpt\u003e]\n\t\tThe post excerpt. Default empty.\n\n\t[--post_status=\u003cpost_status\u003e]\n\t\tThe post status. Default 'draft'.\n\n\t[--post_type=\u003cpost_type\u003e]\n\t\tThe post type. Default 'post'.\n\n\t[--comment_status=\u003ccomment_status\u003e]\n\t\tWhether the post can accept comments. Accepts 'open' or 'closed'. Default is the value of 'default_comment_status' option.\n\n\t[--ping_status=\u003cping_status\u003e]\n\t\tWhether the post can accept pings. Accepts 'open' or 'closed'. Default is the value of 'default_ping_status' option.\n\n\t[--post_password=\u003cpost_password\u003e]\n\t\tThe password to access the post. Default empty.\n\n\t[--post_name=\u003cpost_name\u003e]\n\t\tThe post name. Default is the sanitized post title when creating a new post.\n\n\t[--to_ping=\u003cto_ping\u003e]\n\t\tSpace or carriage return-separated list of URLs to ping. Default empty.\n\n\t[--pinged=\u003cpinged\u003e]\n\t\tSpace or carriage return-separated list of URLs that have been pinged. Default empty.\n\n\t[--post_modified=\u003cpost_modified\u003e]\n\t\tThe date when the post was last modified. Default is the current time.\n\n\t[--post_modified_gmt=\u003cpost_modified_gmt\u003e]\n\t\tThe date when the post was last modified in the GMT timezone. Default is the current time.\n\n\t[--post_parent=\u003cpost_parent\u003e]\n\t\tSet this for the post it belongs to, if any. Default 0.\n\n\t[--menu_order=\u003cmenu_order\u003e]\n\t\tThe order the post should be displayed in. Default 0.\n\n\t[--post_mime_type=\u003cpost_mime_type\u003e]\n\t\tThe mime type of the post. Default empty.\n\n\t[--guid=\u003cguid\u003e]\n\t\tGlobal Unique ID for referencing the post. Default empty.\n\n\t[--post_category=\u003cpost_category\u003e]\n\t\tArray of category names, slugs, or IDs. Defaults to value of the 'default_category' option.\n\n\t[--tags_input=\u003ctags_input\u003e]\n\t\tArray of tag names, slugs, or IDs. Default empty.\n\n\t[--tax_input=\u003ctax_input\u003e]\n\t\tArray of taxonomy terms keyed by their taxonomy name. Default empty.\n\n\t\tNote: In WordPress core, this normally requires a user context to satisfy capability checks. WP-CLI bypasses this for convenience. See https://core.trac.wordpress.org/ticket/19373\n\n\t[--meta_input=\u003cmeta_input\u003e]\n\t\tArray in JSON format of post meta values keyed by their post meta key. Default empty.\n\n\t[\u003cfile\u003e]\n\t\tRead post content from \u003cfile\u003e. If this value is present, the\n\t\t    `--post_content` argument will be ignored.\n\n\t\tPassing `-` as the filename will cause post content to\n\t\tbe read from STDIN.\n\n\t--\u003cfield\u003e=\u003cvalue\u003e\n\t\tOne or more fields to update. See wp_insert_post().\n\n\t[--defer-term-counting]\n\t\tRecalculate term count in batch, for a performance boost.\n\n**EXAMPLES**\n\n    $ wp post update 123 --post_name=something --post_status=draft\n    Success: Updated post 123.\n\n    # Update a post with multiple meta values.\n    $ wp post update 123 --meta_input='{\"key1\":\"value1\",\"key2\":\"value2\"}'\n    Success: Updated post 123.\n\n    # Update multiple posts at once.\n    $ wp post update 123 456 --post_author=789\n    Success: Updated post 123.\n    Success: Updated post 456.\n\n    # Update all posts of a given post type at once.\n    $ wp post update $(wp post list --post_type=page --format=ids) --post_author=123\n    Success: Updated post 123.\n    Success: Updated post 456.\n\n\n\n### wp post url-to-id\n\nGets the post ID for a given URL.\n\n~~~\nwp post url-to-id \u003curl\u003e\n~~~\n\n**OPTIONS**\n\n\t\u003curl\u003e\n\t\tThe URL of the post to get.\n\n**EXAMPLES**\n\n    # Get post ID by URL\n    $ wp post url-to-id https://example.com/?p=1\n    1\n\n\n\n### wp post has-blocks\n\nChecks if a post contains any blocks.\n\n~~~\nwp post has-blocks \u003cid\u003e\n~~~\n\nExits with return code 0 if the post contains blocks,\nor return code 1 if it does not.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to check.\n\n**EXAMPLES**\n\n    # Check if post contains blocks.\n    $ wp post has-blocks 123\n    Success: Post 123 contains blocks.\n\n    # Check a classic (non-block) post.\n    $ wp post has-blocks 456\n    Error: Post 456 does not contain blocks.\n\n    # Use in a shell conditional.\n    $ if wp post has-blocks 123 2\u003e/dev/null; then\n    \u003e   echo \"Post uses blocks\"\n    \u003e fi\n\n\n\n### wp post has-block\n\nChecks if a post contains a specific block type.\n\n~~~\nwp post has-block \u003cid\u003e \u003cblock-name\u003e\n~~~\n\nExits with return code 0 if the post contains the specified block,\nor return code 1 if it does not.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to check.\n\n\t\u003cblock-name\u003e\n\t\tThe block type name to check for (e.g., 'core/paragraph').\n\n**EXAMPLES**\n\n    # Check if post contains a paragraph block.\n    $ wp post has-block 123 core/paragraph\n    Success: Post 123 contains block 'core/paragraph'.\n\n    # Check for a heading block.\n    $ wp post has-block 123 core/heading\n    Success: Post 123 contains block 'core/heading'.\n\n    # Check for a block that doesn't exist.\n    $ wp post has-block 123 core/gallery\n    Error: Post 123 does not contain block 'core/gallery'.\n\n    # Check for a custom block from a plugin.\n    $ wp post has-block 123 my-plugin/custom-block\n\n\n\n### wp post block\n\nManages blocks within post content.\n\n~~~\nwp post block\n~~~\n\nProvides commands for inspecting, manipulating, and managing\nGutenberg blocks in post content.\n\n**EXAMPLES**\n\n    # List all blocks in a post.\n    $ wp post block list 123\n    +------------------+-------+\n    | blockName        | count |\n    +------------------+-------+\n    | core/paragraph   | 2     |\n    | core/heading     | 1     |\n    +------------------+-------+\n\n    # Parse blocks in a post to JSON.\n    $ wp post block parse 123 --format=json\n\n    # Insert a paragraph block.\n    $ wp post block insert 123 core/paragraph --content=\"Hello World\"\n\n\n\n\n\n### wp post block clone\n\nClones a block within a post.\n\n~~~\nwp post block clone \u003cid\u003e \u003csource-index\u003e [--position=\u003cposition\u003e] [--porcelain]\n~~~\n\nDuplicates an existing block and inserts it at a specified position.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post.\n\n\t\u003csource-index\u003e\n\t\tIndex of the block to clone (0-indexed).\n\n\t[--position=\u003cposition\u003e]\n\t\tWhere to insert the cloned block. Accepts 'after', 'before', 'start', 'end', or a numeric index.\n\t\t---\n\t\tdefault: after\n\t\t---\n\n\t[--porcelain]\n\t\tOutput just the new block index.\n\n**EXAMPLES**\n\n    # Clone a block and insert immediately after it (default).\n    $ wp post block clone 123 2\n    Success: Cloned block to index 3 in post 123.\n\n    # Clone the first block and insert immediately before it.\n    $ wp post block clone 123 0 --position=before\n    Success: Cloned block to index 0 in post 123.\n\n    # Clone a block and insert at the end of the post.\n    $ wp post block clone 123 0 --position=end\n    Success: Cloned block to index 5 in post 123.\n\n    # Clone a block and insert at the start of the post.\n    $ wp post block clone 123 3 --position=start\n    Success: Cloned block to index 0 in post 123.\n\n    # Clone and get just the new block index for scripting.\n    $ wp post block clone 123 1 --porcelain\n    2\n\n    # Duplicate the hero section (first block) at the end for a footer.\n    $ wp post block clone 123 0 --position=end\n    Success: Cloned block to index 10 in post 123.\n\n\n\n### wp post block count\n\nCounts blocks across multiple posts.\n\n~~~\nwp post block count [\u003cid\u003e...] [--block=\u003cblock-name\u003e] [--post-type=\u003ctype\u003e] [--post-status=\u003cstatus\u003e] [--format=\u003cformat\u003e]\n~~~\n\nAnalyzes block usage across posts for site-wide reporting.\n\n**OPTIONS**\n\n\t[\u003cid\u003e...]\n\t\tOptional post IDs. If not specified, queries all posts.\n\n\t[--block=\u003cblock-name\u003e]\n\t\tOnly count specific block type.\n\n\t[--post-type=\u003ctype\u003e]\n\t\tLimit to specific post type(s). Comma-separated.\n\t\t---\n\t\tdefault: post,page\n\t\t---\n\n\t[--post-status=\u003cstatus\u003e]\n\t\tPost status to include.\n\t\t---\n\t\tdefault: publish\n\t\t---\n\n\t[--format=\u003cformat\u003e]\n\t\tOutput format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - json\n\t\t  - csv\n\t\t  - yaml\n\t\t  - count\n\t\t---\n\n**EXAMPLES**\n\n    # Count all blocks across published posts and pages.\n    $ wp post block count\n    +------------------+-------+-------+\n    | blockName        | count | posts |\n    +------------------+-------+-------+\n    | core/paragraph   | 1542  | 234   |\n    | core/heading     | 523   | 198   |\n    | core/image       | 312   | 156   |\n    +------------------+-------+-------+\n\n    # Count blocks in specific posts only.\n    $ wp post block count 123 456 789\n    +------------------+-------+-------+\n    | blockName        | count | posts |\n    +------------------+-------+-------+\n    | core/paragraph   | 8     | 3     |\n    | core/heading     | 3     | 2     |\n    +------------------+-------+-------+\n\n    # Count only paragraph blocks across the site.\n    $ wp post block count --block=core/paragraph --format=count\n    1542\n\n    # Count blocks in a custom post type.\n    $ wp post block count --post-type=product\n\n    # Count blocks in multiple post types.\n    $ wp post block count --post-type=post,page,product\n\n    # Count blocks including drafts.\n    $ wp post block count --post-status=draft\n\n    # Get count as JSON for further processing.\n    $ wp post block count --format=json\n    [{\"blockName\":\"core/paragraph\",\"count\":1542,\"posts\":234}]\n\n    # Get total number of unique block types used.\n    $ wp post block count --format=count\n    15\n\n\n\n### wp post block export\n\nExports block content to a file.\n\n~~~\nwp post block export \u003cid\u003e [--file=\u003cfile\u003e] [--format=\u003cformat\u003e] [--raw]\n~~~\n\nExports blocks from a post to a file for backup or migration.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to export blocks from.\n\n\t[--file=\u003cfile\u003e]\n\t\tOutput file path. If not specified, outputs to STDOUT.\n\n\t[--format=\u003cformat\u003e]\n\t\tExport format.\n\t\t---\n\t\tdefault: json\n\t\toptions:\n\t\t  - json\n\t\t  - yaml\n\t\t  - html\n\t\t---\n\n\t[--raw]\n\t\tInclude innerHTML in JSON/YAML output.\n\n**EXAMPLES**\n\n    # Export blocks to a JSON file for backup.\n    $ wp post block export 123 --file=blocks.json\n    Success: Exported 5 blocks to blocks.json\n\n    # Export blocks to STDOUT as JSON.\n    $ wp post block export 123\n    {\n        \"version\": \"1.0\",\n        \"generator\": \"wp-cli/entity-command\",\n        \"post_id\": 123,\n        \"exported_at\": \"2024-12-10T12:00:00+00:00\",\n        \"blocks\": [...]\n    }\n\n    # Export as YAML format.\n    $ wp post block export 123 --format=yaml\n    version: \"1.0\"\n    generator: wp-cli/entity-command\n    blocks:\n      - blockName: core/paragraph\n        attrs: []\n\n    # Export rendered HTML (final output, not block structure).\n    $ wp post block export 123 --format=html --file=content.html\n    Success: Exported 5 blocks to content.html\n\n    # Export with raw innerHTML included for complete backup.\n    $ wp post block export 123 --raw --file=blocks-full.json\n    Success: Exported 5 blocks to blocks-full.json\n\n    # Pipe export to another command.\n    $ wp post block export 123 | jq '.blocks[].blockName'\n\n\n\n### wp post block extract\n\nExtracts data from blocks.\n\n~~~\nwp post block extract \u003cid\u003e [--block=\u003cblock-name\u003e] [--index=\u003cindex\u003e] [--attr=\u003cattr\u003e] [--content] [--format=\u003cformat\u003e]\n~~~\n\nExtracts specific attribute values or content from blocks for scripting.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post.\n\n\t[--block=\u003cblock-name\u003e]\n\t\tFilter by block type.\n\n\t[--index=\u003cindex\u003e]\n\t\tGet from specific block index.\n\n\t[--attr=\u003cattr\u003e]\n\t\tExtract specific attribute value.\n\n\t[--content]\n\t\tExtract innerHTML content.\n\n\t[--format=\u003cformat\u003e]\n\t\tOutput format.\n\t\t---\n\t\tdefault: json\n\t\toptions:\n\t\t  - json\n\t\t  - yaml\n\t\t  - csv\n\t\t  - ids\n\t\t---\n\n**EXAMPLES**\n\n    # Extract all image IDs from the post (one per line).\n    $ wp post block extract 123 --block=core/image --attr=id --format=ids\n    456\n    789\n    1024\n\n    # Extract all image URLs as JSON array.\n    $ wp post block extract 123 --block=core/image --attr=url --format=json\n    [\"https://example.com/img1.jpg\",\"https://example.com/img2.jpg\"]\n\n    # Extract text content from all headings.\n    $ wp post block extract 123 --block=core/heading --content --format=ids\n    Introduction\n    Getting Started\n    Conclusion\n\n    # Get the heading level from the first block.\n    $ wp post block extract 123 --index=0 --attr=level --format=ids\n    2\n\n    # Extract all heading levels as CSV.\n    $ wp post block extract 123 --block=core/heading --attr=level --format=csv\n    2,3,3,2\n\n    # Extract paragraph content as YAML.\n    $ wp post block extract 123 --block=core/paragraph --content --format=yaml\n    - \"First paragraph text\"\n    - \"Second paragraph text\"\n\n    # Get all button URLs for link checking.\n    $ wp post block extract 123 --block=core/button --attr=url --format=ids\n    https://example.com/signup\n    https://example.com/learn-more\n\n    # Extract cover block image IDs for media audit.\n    $ wp post block extract 123 --block=core/cover --attr=id --format=json\n\n\n\n### wp post block get\n\nGets a single block by index.\n\n~~~\nwp post block get \u003cid\u003e \u003cindex\u003e [--raw] [--format=\u003cformat\u003e]\n~~~\n\nRetrieves the full structure of a block at the specified position.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post.\n\n\t\u003cindex\u003e\n\t\tThe block index (0-indexed).\n\n\t[--raw]\n\t\tInclude innerHTML in output.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: json\n\t\toptions:\n\t\t  - json\n\t\t  - yaml\n\t\t---\n\n**EXAMPLES**\n\n    # Get the first block in a post.\n    $ wp post block get 123 0\n    {\n        \"blockName\": \"core/paragraph\",\n        \"attrs\": {},\n        \"innerBlocks\": []\n    }\n\n    # Get the third block (index 2) with attributes.\n    $ wp post block get 123 2\n    {\n        \"blockName\": \"core/heading\",\n        \"attrs\": {\n            \"level\": 2\n        },\n        \"innerBlocks\": []\n    }\n\n    # Get block as YAML format.\n    $ wp post block get 123 1 --format=yaml\n    blockName: core/image\n    attrs:\n      id: 456\n      sizeSlug: large\n    innerBlocks: []\n\n    # Get block with raw HTML content included.\n    $ wp post block get 123 0 --raw\n    {\n        \"blockName\": \"core/paragraph\",\n        \"attrs\": {},\n        \"innerBlocks\": [],\n        \"innerHTML\": \"\u003cp\u003eHello World\u003c/p\u003e\",\n        \"innerContent\": [\"\u003cp\u003eHello World\u003c/p\u003e\"]\n    }\n\n\n\n### wp post block import\n\nImports blocks from a file into a post.\n\n~~~\nwp post block import \u003cid\u003e [--file=\u003cfile\u003e] [--position=\u003cposition\u003e] [--replace] [--porcelain]\n~~~\n\nImports blocks from a JSON or YAML file into a post's content.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to import blocks into.\n\n\t[--file=\u003cfile\u003e]\n\t\tInput file path. If not specified, reads from STDIN.\n\n\t[--position=\u003cposition\u003e]\n\t\tWhere to insert imported blocks. Accepts 'start', 'end', or a numeric index.\n\t\t---\n\t\tdefault: end\n\t\t---\n\n\t[--replace]\n\t\tReplace all existing blocks instead of appending.\n\n\t[--porcelain]\n\t\tOutput just the number of blocks imported.\n\n**EXAMPLES**\n\n    # Import blocks from a JSON file, append to end of post.\n    $ wp post block import 123 --file=blocks.json\n    Success: Imported 5 blocks into post 123.\n\n    # Import blocks at the beginning of the post.\n    $ wp post block import 123 --file=blocks.json --position=start\n    Success: Imported 5 blocks into post 123.\n\n    # Replace all existing content with imported blocks.\n    $ wp post block import 123 --file=blocks.json --replace\n    Success: Imported 5 blocks into post 123.\n\n    # Import from STDIN (piped from another command).\n    $ cat blocks.json | wp post block import 123\n    Success: Imported 5 blocks into post 123.\n\n    # Copy blocks from one post to another.\n    $ wp post block export 123 | wp post block import 456\n    Success: Imported 5 blocks into post 456.\n\n    # Import YAML format.\n    $ wp post block import 123 --file=blocks.yaml\n    Success: Imported 3 blocks into post 123.\n\n    # Get just the count of imported blocks for scripting.\n    $ wp post block import 123 --file=blocks.json --porcelain\n    5\n\n\n\n### wp post block insert\n\nInserts a block into a post at a specified position.\n\n~~~\nwp post block insert \u003cid\u003e \u003cblock-name\u003e [--content=\u003ccontent\u003e] [--attrs=\u003cattrs\u003e] [--position=\u003cposition\u003e] [--porcelain]\n~~~\n\nAdds a new block to the post content. By default, the block is\nappended to the end of the post.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to modify.\n\n\t\u003cblock-name\u003e\n\t\tThe block type name (e.g., 'core/paragraph').\n\n\t[--content=\u003ccontent\u003e]\n\t\tThe inner content/HTML for the block.\n\n\t[--attrs=\u003cattrs\u003e]\n\t\tBlock attributes as JSON.\n\n\t[--position=\u003cposition\u003e]\n\t\tPosition to insert the block (0-indexed). Use 'start' or 'end'.\n\t\t---\n\t\tdefault: end\n\t\t---\n\n\t[--porcelain]\n\t\tOutput just the post ID.\n\n**EXAMPLES**\n\n    # Insert a paragraph block at the end of the post.\n    $ wp post block insert 123 core/paragraph --content=\"Hello World\"\n    Success: Inserted block into post 123.\n\n    # Insert a level-2 heading at the start.\n    $ wp post block insert 123 core/heading --content=\"My Title\" --attrs='{\"level\":2}' --position=start\n    Success: Inserted block into post 123.\n\n    # Insert an image block at position 2.\n    $ wp post block insert 123 core/image --attrs='{\"id\":456,\"url\":\"https://example.com/image.jpg\"}' --position=2\n\n    # Insert a separator block.\n    $ wp post block insert 123 core/separator\n\n\n\n### wp post block list\n\nLists blocks in a post with counts.\n\n~~~\nwp post block list \u003cid\u003e [--nested] [--format=\u003cformat\u003e]\n~~~\n\nDisplays a summary of block types used in the post and how many\ntimes each block type appears.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to analyze.\n\n\t[--nested]\n\t\tInclude nested/inner blocks in the list.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: table\n\t\toptions:\n\t\t  - table\n\t\t  - csv\n\t\t  - json\n\t\t  - yaml\n\t\t  - count\n\t\t---\n\n**EXAMPLES**\n\n    # List blocks with counts.\n    $ wp post block list 123\n    +------------------+-------+\n    | blockName        | count |\n    +------------------+-------+\n    | core/paragraph   | 5     |\n    | core/heading     | 2     |\n    | core/image       | 1     |\n    +------------------+-------+\n\n    # List blocks as JSON.\n    $ wp post block list 123 --format=json\n    [{\"blockName\":\"core/paragraph\",\"count\":5}]\n\n    # Include nested blocks (e.g., blocks inside columns or groups).\n    $ wp post block list 123 --nested\n\n    # Get the number of unique block types.\n    $ wp post block list 123 --format=count\n    3\n\n\n\n### wp post block move\n\nMoves a block from one position to another.\n\n~~~\nwp post block move \u003cid\u003e \u003cfrom-index\u003e \u003cto-index\u003e [--porcelain]\n~~~\n\nReorders blocks within the post by moving a block from one index to another.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post.\n\n\t\u003cfrom-index\u003e\n\t\tCurrent block index (0-indexed).\n\n\t\u003cto-index\u003e\n\t\tTarget position index (0-indexed).\n\n\t[--porcelain]\n\t\tOutput just the post ID.\n\n**EXAMPLES**\n\n    # Move the first block to the third position.\n    $ wp post block move 123 0 2\n    Success: Moved block from index 0 to index 2 in post 123.\n\n    # Move the last block (index 4) to the beginning.\n    $ wp post block move 123 4 0\n    Success: Moved block from index 4 to index 0 in post 123.\n\n    # Move a heading block from position 3 to position 1.\n    $ wp post block move 123 3 1\n    Success: Moved block from index 3 to index 1 in post 123.\n\n    # Move block and get post ID for scripting.\n    $ wp post block move 123 2 0 --porcelain\n    123\n\n\n\n### wp post block parse\n\nParses and displays the block structure of a post.\n\n~~~\nwp post block parse \u003cid\u003e [--raw] [--format=\u003cformat\u003e]\n~~~\n\nOutputs the parsed block structure as JSON or YAML. By default,\ninnerHTML is stripped from the output for readability.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to parse.\n\n\t[--raw]\n\t\tInclude raw innerHTML in output.\n\n\t[--format=\u003cformat\u003e]\n\t\tRender output in a particular format.\n\t\t---\n\t\tdefault: json\n\t\toptions:\n\t\t  - json\n\t\t  - yaml\n\t\t---\n\n**EXAMPLES**\n\n    # Parse blocks to JSON.\n    $ wp post block parse 123\n    [\n        {\n            \"blockName\": \"core/paragraph\",\n            \"attrs\": {}\n        }\n    ]\n\n    # Parse blocks to YAML format.\n    $ wp post block parse 123 --format=yaml\n    -\n      blockName: core/paragraph\n      attrs: {  }\n\n    # Parse blocks including raw HTML content.\n    $ wp post block parse 123 --raw\n\n\n\n### wp post block remove\n\nRemoves blocks from a post by name or index.\n\n~~~\nwp post block remove \u003cid\u003e [\u003cblock-name\u003e] [--index=\u003cindex\u003e] [--all] [--porcelain]\n~~~\n\nRemoves one or more blocks from the post content. Blocks can be\nremoved by their type name or by their position index.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to modify.\n\n\t[\u003cblock-name\u003e]\n\t\tThe block type name to remove (e.g., 'core/paragraph').\n\n\t[--index=\u003cindex\u003e]\n\t\tRemove block at specific index (0-indexed). Can be comma-separated for multiple indices.\n\n\t[--all]\n\t\tRemove all blocks of the specified type.\n\n\t[--porcelain]\n\t\tOutput just the number of blocks removed.\n\n**EXAMPLES**\n\n    # Remove the first block (index 0).\n    $ wp post block remove 123 --index=0\n    Success: Removed 1 block from post 123.\n\n    # Remove the first paragraph block found.\n    $ wp post block remove 123 core/paragraph\n    Success: Removed 1 block from post 123.\n\n    # Remove all paragraph blocks.\n    $ wp post block remove 123 core/paragraph --all\n    Success: Removed 5 blocks from post 123.\n\n    # Remove blocks at multiple indices.\n    $ wp post block remove 123 --index=0,2,4\n    Success: Removed 3 blocks from post 123.\n\n    # Remove all image blocks and get count.\n    $ wp post block remove 123 core/image --all --porcelain\n    2\n\n\n\n### wp post block replace\n\nReplaces blocks in a post.\n\n~~~\nwp post block replace \u003cid\u003e \u003cold-block-name\u003e \u003cnew-block-name\u003e [--attrs=\u003cattrs\u003e] [--content=\u003ccontent\u003e] [--all] [--porcelain]\n~~~\n\nReplaces blocks of one type with blocks of another type. Can also\nbe used to update block attributes without changing the block type.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to modify.\n\n\t\u003cold-block-name\u003e\n\t\tThe block type name to replace.\n\n\t\u003cnew-block-name\u003e\n\t\tThe new block type name.\n\n\t[--attrs=\u003cattrs\u003e]\n\t\tNew block attributes as JSON.\n\n\t[--content=\u003ccontent\u003e]\n\t\tNew block content. Use '{content}' to preserve original content.\n\n\t[--all]\n\t\tReplace all matching blocks. By default, only the first match is replaced.\n\n\t[--porcelain]\n\t\tOutput just the number of blocks replaced.\n\n**EXAMPLES**\n\n    # Replace the first paragraph block with a heading.\n    $ wp post block replace 123 core/paragraph core/heading\n    Success: Replaced 1 block in post 123.\n\n    # Replace all paragraphs with preformatted blocks, keeping content.\n    $ wp post block replace 123 core/paragraph core/preformatted --content='{content}' --all\n    Success: Replaced 3 blocks in post 123.\n\n    # Change all h2 headings to h3.\n    $ wp post block replace 123 core/heading core/heading --attrs='{\"level\":3}' --all\n\n    # Replace and get count for scripting.\n    $ wp post block replace 123 core/quote core/pullquote --all --porcelain\n    2\n\n\n\n### wp post block render\n\nRenders blocks from a post to HTML.\n\n~~~\nwp post block render \u003cid\u003e [--block=\u003cblock-name\u003e]\n~~~\n\nOutputs the rendered HTML of blocks in a post. This uses WordPress's\nblock rendering system to produce the final HTML output.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the post to render.\n\n\t[--block=\u003cblock-name\u003e]\n\t\tOnly render blocks of this type.\n\n**EXAMPLES**\n\n    # Render all blocks to HTML.\n    $ wp post block render 123\n    \u003cp\u003eHello World\u003c/p\u003e\n    \u003ch2\u003eMy Heading\u003c/h2\u003e\n\n    # Render only paragraph blocks.\n    $ wp post block render 123 --block=core/paragraph\n    \u003cp\u003eHello World\u003c/p\u003e\n\n    # Render only heading blocks.\n    $ wp post block render 123 --block=core/heading\n\n\n\n### wp post block update\n\nUpdates a block's attributes or content by index.\n\n~~~\nwp post block update \u003cid\u003e \u003cindex\u003e [--attrs=\u003cattrs\u003e] [--content=\u003ccontent\u003e] [--replace-attrs] [--porcelain]\n~~~\n\nModifies a specific block without changing its type. For blocks where\nattributes are reflected in HTML (like heading levels), the HTML is\nautomatically updated to match the new attributes.\n\n**OPTIONS**\n\n\t\u003cid\u003e\n\t\tThe ID of the","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwp-cli%2Fentity-command","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwp-cli%2Fentity-command","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwp-cli%2Fentity-command/lists"}