Update WordPress Page
wp_update_pageUpdate an existing WordPress page by ID, modifying only the specified fields like title, content, or status. Enables precise partial edits without touching unrelated data.
Instructions
Update an existing page. Only the fields you pass will change.
Args:
id (number): Page ID. Required.
All other fields optional, same shape as wp_create_page.
content_path (string): Optional. Absolute local file path; its contents become the page content (for bodies too large to pass inline). Overrides 'content'.
response_format (enum): markdown | json. Default 'markdown'.
Returns: The updated WPContentItem.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Page ID to update. | |
| date | No | Publish/schedule date in ISO 8601 (e.g. '2026-05-15T10:00:00'). For scheduling, also set status='future'. | |
| slug | No | URL slug. WP auto-generates from title if omitted on create. | |
| title | No | Post/page title (plain text). | |
| author | No | Author user ID. Defaults to the authenticated user on create. | |
| parent | No | Parent page ID. Use 0 for top-level page. | |
| status | No | Status: publish | future | draft | pending | private. Default 'draft' on create. | |
| content | No | Post/page HTML content. Send <p>, <h2>, <a>, <img>, etc. WP renders inline. | |
| excerpt | No | Short summary shown on archive/listing pages. | |
| menu_order | No | Numeric position in the WP page hierarchy. | |
| content_path | No | Absolute path to a local file (on the machine running this MCP) whose UTF-8 contents become the page 'content'. Use for bodies too large to pass inline. Overrides 'content' if both are given. | |
| featured_media | No | Featured image media ID. Use 0 to unset. | |
| response_format | No | Output format: 'markdown' for human-readable, 'json' for machine-readable. | markdown |