Skip to content

WP-CLI commands

RowSprout Pro

RowSprout Pro 3.1 adds 9 wp rowsprout commands. They call the same code as the MCP abilities, and they check permissions the same way, so every command needs --user=<id>: a WordPress user who may edit the template. WP-CLI runs without a logged-in user otherwise.

There are deliberately no commands that change properties or groups, or that repair data. Use the template editor, or the MCP abilities, for those.

Run wp help rowsprout <command> on your site for the same text as below.

Queues a template’s pages for (re)generation, or just marks them stale without generating — the same two save actions as the admin’s own “Save action” dropdown (Create & update pages / Save template only).

Terminal window
wp rowsprout generate <template-id> [--group-ids=<ids>] [--force] [--save-only] [--user=<id>]
Option Description
<template-id> The rowsprout_template post ID.
[--group-ids=<ids>] Comma-separated group IDs to limit this to, instead of the whole template.
[--force] Regenerate every targeted group, ignoring change detection (same as the admin’s “Regenerate all pages” checkbox). Has no effect together with –save-only.
[--save-only] Mark groups stale without queueing pages for (re)generation (same as the “Save template only” save action).
[--user=<id>] Run as this WordPress user — required for the underlying capability check to pass.

Examples

Terminal window
wp rowsprout generate 27147 --user=1
wp rowsprout generate 27147 --force --user=1
wp rowsprout generate 27147 --group-ids=389451940,220144880 --user=1

Shows generation/queue status: a site-wide summary by default, or a per-group breakdown when a template ID is given.

Terminal window
wp rowsprout queue-status [<template-id>] [--status=<status>] [--format=<format>] [--user=<id>]
Option Description
[<template-id>] Limit to this rowsprout_template post ID — shows every group’s own status instead of a site-wide summary.
[--status=<status>] Only count/show groups with this status (completed, pending, stale, failed, scheduled, in-process, waiting).
[--format=<format>] Output format: table (default), csv, json, yaml, or count.
[--user=<id>] Run as this WordPress user — only required when <template-id> is given (the site-wide summary reads the queue table directly and isn’t capability-gated).

Examples

Terminal window
wp rowsprout queue-status
wp rowsprout queue-status --status=failed
wp rowsprout queue-status 27147 --user=1

Immediately processes whatever is currently due in the generation queue, instead of waiting for the next background tick (normally within a minute, via Action Scheduler). Runs QueueProcessor::processQueue() (the exact same entry point the scheduled tick itself calls — same processing-window and license-limit rules apply) and then, when Action Scheduler dispatched work asynchronously rather than running it inline, immediately runs its own bundled wp action-scheduler run command scoped to just this plugin’s own processing hook, so this command doesn’t return before the work it just queued is done.

Terminal window
wp rowsprout process-queue

Examples

Terminal window
wp rowsprout process-queue

Lists rowsprout_template posts.

Terminal window
wp rowsprout list-templates [--status=<status>] [--search=<term>] [--page=<page>] [--per-page=<count>] [--format=<format>]
Option Description
[--status=<status>] Post status filter. Default: any.
[--search=<term>] Only templates whose title/content matches this search term.
[--page=<page>]
[--per-page=<count>] Pagination, default page 1 / 20 per page (max 100).
[--format=<format>] Output format: table (default), csv, json, yaml, or count.

Examples

Terminal window
wp rowsprout list-templates
wp rowsprout list-templates --search=Keuken --format=json

Shows a single template’s details.

Terminal window
wp rowsprout get-template <template-id> [--format=<format>] [--user=<id>]
Option Description
<template-id> The rowsprout_template post ID.
[--format=<format>] table (default, a one-row summary) or json/yaml for the full detail, including every property and group.
[--user=<id>] Run as this WordPress user — required for the underlying capability check to pass.

Examples

Terminal window
wp rowsprout get-template 27147 --user=1
wp rowsprout get-template 27147 --format=json --user=1

Lists a template’s properties (field definitions) — including any the template hasn’t explicitly saved itself yet but inherits from its parent template (see PayloadConfigBuilder::mergeInheritedFieldTypes()).

Terminal window
wp rowsprout list-properties <template-id> [--format=<format>] [--user=<id>]
Option Description
<template-id> The rowsprout_template post ID.
[--format=<format>] Output format: table (default), csv, json, yaml, or count.
[--user=<id>] Run as this WordPress user — required for the underlying capability check to pass.

Examples

Terminal window
wp rowsprout list-properties 27147 --user=1

Shows the planning of a template’s groups: for every group its state (not generated yet / planned / waiting for its parent / queued / processing / live / outdated / failed), the moment it is planned to be generated (which is when its page goes live), and when it was last generated. Read-only; works on any language’s template. Times are in the site’s timezone.

Terminal window
wp rowsprout list-planning <template-id> [--state=<state>] [--format=<format>] [--user=<id>]
Option Description
<template-id> The rowsprout_template post ID.
[--state=<state>] Only groups in this state: unplanned, planned, waiting_parent, queued, processing, live, stale, failed, deleted.
[--format=<format>] Output format: table (default), csv, json, yaml, or count.
[--user=<id>] Run as this WordPress user — required for the underlying capability check to pass.

Examples

Terminal window
wp rowsprout list-planning 27147 --user=1
wp rowsprout list-planning 27147 --state=planned --user=1

Plans — or clears — when groups are generated. Either one group (–group with –at or –clear) or many at once (–plan as JSON). All-or-nothing: if any entry is invalid nothing is saved. A child group can’t be planned earlier than its parent group. This never generates anything now — the background queue does, at the planned moment. Refused on a template that is a WPML translation of another, like every write through MCP/CLI.

Terminal window
wp rowsprout set-planning <template-id> [--group=<group-id>] [--at=<datetime>] [--clear] [--plan=<json>] [--user=<id>]
Option Description
<template-id> The rowsprout_template post ID.
[--group=<group-id>] The group to plan (use with –at or –clear).
[--at=<datetime>] When to generate it, “YYYY-MM-DD HH:MM” in the site’s timezone.
[--clear] Remove this group’s plan (use with –group).
[--plan=<json>] Plan several groups at once: a JSON object of group id => “YYYY-MM-DD HH:MM” (or “” to clear).
[--user=<id>] Run as this WordPress user — required for the underlying capability check to pass.

Examples

Terminal window
wp rowsprout set-planning 27147 --group=389451940 --at="2026-10-01 09:00" --user=1
wp rowsprout set-planning 27147 --group=389451940 --clear --user=1
wp rowsprout set-planning 27147 --plan='{"389451940":"2026-10-01 09:00","220144880":""}' --user=1

Spreads planned moments over a set of groups from a few parameters — the command-line twin of the Planning tab’s auto-fill wizard. Starting at –start it hands out –per groups per day (or hour), between –from and –to, optionally only on certain weekdays. A PREVIEW unless –save is given (–save is refused on a WPML translation; the preview works everywhere). A child group is never placed earlier than its parent group.

Terminal window
wp rowsprout autofill-planning <template-id> --start=<datetime> [--per=<n>] [--period=<period>] [--from=<time>] [--to=<time>] [--weekdays=<list>] [--order=<order>] [--apply=<which>] [--group-ids=<ids>] [--save] [--format=<format>] [--user=<id>]
Option Description
<template-id> The rowsprout_template post ID.
--start=<datetime> First possible moment, “YYYY-MM-DD HH:MM” in the site’s timezone.
[--per=<n>] Groups per period. Default 5.
[--period=<period>] day (default) or hour.
[--from=<time>] Daily window start, HH:MM. Default 09:00.
[--to=<time>] Daily window end, HH:MM. Default 17:00.
[--weekdays=<list>] Only on these weekdays: comma-separated numbers (0 = Sunday … 6 = Saturday) or names (mon,tue,…). Default: every day.
[--order=<order>] table (default), title (alphabetical) or random.
[--apply=<which>] Which groups: empty (default — groups without a plan) or all.
[--group-ids=<ids>] Comma-separated group IDs to plan instead (overrides –apply).
[--save] Store the result. Without it this only shows the proposal.
[--format=<format>] Output format for the proposal: table (default), csv, json, yaml.
[--user=<id>] Run as this WordPress user — required for the underlying capability check to pass.

Examples

Terminal window
wp rowsprout autofill-planning 27147 --start="2026-10-01 09:00" --per=5 --user=1
wp rowsprout autofill-planning 27147 --start="2026-10-01 09:00" --per=3 --weekdays=mon,wed,fri --order=random --save --user=1