Skip to main content
Content abilities let you manage any registered post type on your WordPress site — posts, pages, WooCommerce products, or any custom type your theme or plugins register. Every write operation is permission-gated and recorded in the audit log, so you always have a clear trail of what changed.

All content abilities

All content abilities accept a post_type parameter. Pass any registered post type: post, page, product, or any custom type on your site. Abilities that don’t receive post_type default to searching across all registered types.

Write gate

Write abilities — any ability that creates, updates, or deletes content — require the WordPress user connected to your AI client to have the administrator role (manage_options). This check is enforced in PHP server-side and cannot be bypassed. Read abilities (get-content, list-content, search-content) work for any authenticated user.

Key ability examples

maxi/create-content

Create a new post or page. Pass the content as valid Gutenberg block HTML (see Content format below).

maxi/get-content

Retrieve a single post by its numeric ID.

maxi/list-content

List posts with filters. All list-* abilities accept orderby, order, per_page, and page.

maxi/update-content

Update specific fields on an existing post. Send only the fields you want to change — you do not need to repeat unchanged fields.
Read before writing content. If you need to update the content field, you must first call maxi/get-content or maxi/get-content-by-slug for that post in the same session. This prevents you from overwriting content you haven’t read. Skipping the read step causes the update to be rejected.

maxi/search-content

Search by keyword, taxonomy, meta values, author, or a date range.

maxi/schedule-content

Schedule an existing draft for publication at a future date and time. Use MySQL datetime format (YYYY-MM-DD HH:MM:SS).

Content format

For new content, use Gutenberg block HTML. Plain HTML, shortcodes, and classic-editor content are also accepted — WordPress core’s block parser handles all of these. Only an empty or whitespace-only string is rejected.
You can combine multiple blocks in a single content value by concatenating them. Each block must have its own opening and closing comment delimiters.

Audit log

Every content mutation is recorded in the audit log under the content category. Events include content_created, content_updated, content_deleted, content_duplicated, status_changed, content_scheduled, author_changed, and parent_changed. Query them with maxi/get-audit-events using { "category": "content" }.