Reference for all WP-CLI commands provided by the SIA custom plugins.
See API.md for the REST API and WordPress hooks reference.
All commands support --format=<table|json|yaml> unless noted otherwise.
wp ariel — Ariel| Subcommand | Key options | Description |
|---|---|---|
warm-profile-transients |
[--letsgo] [--quiet] |
Bust and re-warm all profile, team, and organization transients. Without --letsgo only reports current cache state. |
warm-team-transients |
[--letsgo] [--quiet] |
Bust and re-warm team transients only (SIA_Team::get_teams and SIA_Website::get_team per website). Outputs a summary table. Without --letsgo only reports current cache state. |
disconnect-team-member <ID> |
[--letsgo] [--quiet] |
Disconnect a WP user from their Play profile. |
invite-team-member <ID> |
[--invite_email] [--temporary_password] [--letsgo] [--force] |
Send or resend the Play invite email to a team member. |
send-post-netcrm-data <ID> |
[--letsgo] [--quiet] |
Push a single profile or organization post to Net/CRM. |
send-all-of-post-type-to-netcrm |
--post_type=<type> [--letsgo] [--quiet] |
Push all posts of a given type (profiles, organizations) to Net/CRM. |
import-slack-users-from-csv <file> |
[--letsgo] [--quiet] |
Import Slack user data from a Slack admin CSV export and write slack_id, slack, and slack_status to matching profile meta. Dry-run by default. |
poll-slack-presence |
[--letsgo] [--quiet] |
Poll the Slack access logs and record presence for active members not yet seen today. Dry-run by default. |
sync-slack-users-to-iti |
[--letsgo] [--quiet] |
Sync every profile that has a Slack ID to the IT Infrastructure Airtable base. Dry-run by default. |
backfill-slack-presence-meta |
[--letsgo] [--quiet] |
Backfill slack_status and slack_handle from profile meta into the wp_slack_user_presence table. Dry-run by default. |
send-host-upgrade-email <iso2> |
[--letsgo] [--force] [--test] [--quiet] |
Send the host upgrade notification email to all members of a country team. Use hq as the ISO2 for the headquarter team. Without --letsgo only previews the email. --force bypasses the already-sent guard. --test sends only to the site admin without recording the send. |
backfill-team-slack-channel-ids |
[--letsgo] [--quiet] |
Extract the Slack channel ID from each team’s slackChannelUrl and write it to slackChannelId. Teams with a URL whose last path segment does not match the C… format are flagged. Teams that already have a slackChannelId are skipped. Dry-run by default. |
invite-to-slack-channel <email> <iso2> |
[--letsgo] [--quiet] |
Invite a team member (by email) to a country team’s Slack channel (by ISO2, or hq for the headquarter team). Dry-run by default. |
sync-list-subscribers-with-play-profiles <list> |
[--letsgo] |
Query Mailjet per-profile for the given list (spark or network) and write the corresponding mailing_list_* meta on profiles whose stored state differs. Only mismatched profiles are shown. No writes to Mailjet. Dry-run by default. |
send-play-profiles-to-list-subscribers <list> |
[--letsgo] |
Subscribe all profiles to the given list (spark or network) and set the corresponding mailing_list_* meta to 1. For the network list, also pushes contact properties to Mailjet. Dry-run by default. |
fetch-mailjet-lists |
[--format=…] |
List all Mailjet mailing lists per audience. Flags lists not registered in SIA_Ariel_Mailjet. |
check-mailjet-fields |
[--format=…] |
Diff SIA_Ariel_Mailjet::AUDIENCE_FIELDS against the live Mailjet contact metadata API per audience. Reports fields missing from code, fields missing from the API, and type mismatches. |
wp publishing — Publishing| Subcommand | Key options | Description |
|---|---|---|
publish-website |
--site=<ID> |
Deactivate Restricted Site Access and make a team website publicly visible. |
bust-sitemap-cache |
--site=<ID> or --network |
Delete the sitemap cache for one or all websites. |
bust-transient-variants <class> <function> |
--site=<ID> / --global / --network |
Remove all variants of a named transient from one blog, site meta, or every blog. |
bust-transients |
--site=<ID> / --global / --network |
Remove all transients for one blog, site meta, or the entire network. |
set-layout <layout> |
--page-id=<ID> [--site=<ID>] [--force] [--preserve-content] [--quiet] |
Apply a layout to an existing post. |
unset-layout |
--page-id=<ID> [--site=<ID>] |
Remove layout post-meta from a post. |
create-post-with-layout <layout> |
[--site=<ID>] |
Create a new post and immediately apply the given layout. |
deploy-layout <layout> |
[--site=<ID>] |
Create all posts defined by a layout on a website. |
deploy-wanda |
[--site=<ID>] |
Create all Wanda pages on a website. |
wipeout-wanda |
[--site=<ID>] |
Remove all Wanda pages from a website. |
deploy-v2021 |
[--site=<ID>] |
Create all v20.21 pages on a website. |
stage-v2021 |
Create all v20.21 pages in draft state across the network. | |
switch-to-v2021 |
[--site=<ID>] |
Publish all v20.21 pages on a website. |
wipeout-v2021 |
[--site=<ID>] |
Remove all v20.21 pages from a website. |
reset-implementation |
[--site=<ID>] |
Reset all SIA Implementation settings so a website can be re-deployed from scratch. |
validate-sitemap |
Validate the entire sitemap inventory against declared layouts. | |
sitemap |
[--site=<ID>] |
Display the sitemap for a website. |
sitemap-prototype-data |
[--output=<dir>] |
Generate sitemap-data.json from live post content. Writes to sia-publishing/public/ by default. |
navigation |
[--site=<ID>] |
List the two-level navigation for a website or license. |
list-layouts |
[--format=…] |
List all layouts declared in the repository. |
validate-layouts |
Validate that all posts with a layout postmeta point to a declared layout. | |
validate-layout <layout> |
Validate a single layout’s internal references. | |
test-redirect |
--post_name=<slug> --target_post_id=<ID> [--site=<ID>] |
Test creation of a RankMath redirect without permanently persisting it. |
add-redirect <slug> <url> |
[--site=<ID>] |
Create a RankMath redirect from a slug to a URL. |
set-excerpts |
[--site=<ID>] |
Set post excerpts according to their layout definitions. |
backfill-wna |
[--letsgo] [--blog-id=<id>] [--post-type=<type>] [--posts-only] [--terms-only] |
Backfill all published posts and category terms across the network to the Website Network Activity base. Dry-run by default. |
wp play — Play| Subcommand | Key options | Description |
|---|---|---|
backfill-wna |
[--letsgo] |
Backfill all published articles on the Play blog to the Website Network Activity base. Dry-run by default. |
wp glossary — Glossary| Subcommand | Key options | Description |
|---|---|---|
backfill-wna |
[--letsgo] |
Backfill all published glossary terms on the Play blog to the Website Network Activity base. Includes all seven publishing classification fields. Dry-run by default. |
wp sia — Deployment| Subcommand | Key options | Description |
|---|---|---|
flush-w3tc |
--site=<ID> or --network |
Flush the W3 Total Cache static cache for one or all public websites by calling each site’s /flush-caches.php endpoint. |
set-aap-importables |
(run with --url=<site>) |
Send A&AP importable constants to the current website’s application platform. |
set-aap-constants |
(run with --url=<site>) |
Send A&AP constant importables to all websites’ application platforms. |
list-aaps |
[--skip-summary] [--format=…] |
Display all A&APs across the multisite network with status, language, and licensee. |
list-websites |
[--active] [--team] [--skip-summary] [--format=…] |
Display all blogs in the multisite network with public/restricted status, licensee, and theme. |
fix-contact-forms |
[--site=<ID>] [--execute] [--verbose] [--format=…] |
Audit and fix Contact Form 7 mail parameters for best deliverability. Dry-run by default. |
contact-forms |
[--site=<ID>] [--format=…] |
List all Contact Form 7 posts with mail details and validity. |
convert-myisam-tables |
[--letsgo] |
Convert all MyISAM tables in the database to InnoDB with ROW_FORMAT=DYNAMIC. Dry-run by default; failed conversions are written to the PHP error log. |
wp cv — Project Voting| Subcommand | Key options | Description |
|---|---|---|
send-edition-daily-summaries <edition> |
[--letsgo] [--silence] [--type] |
Send a competition edition’s batch of daily vote summaries to the ComVo remote. |
send-daily-summary |
[--letsgo] |
Send today’s vote summary to ComVo. |
send-votes |
[--letsgo] |
Send pending votes to ComVo. |
send-venture-data |
[--letsgo] |
Send venture data for the current competition to ComVo. |
send-archival-edition-venture-data <edition> |
[--letsgo] |
Send venture data for a past edition to ComVo. |
get-competition-settings |
--site=<ID> [--filter=<key,value>] |
Display competition settings for a site. |
update-competition-setting |
--site=<ID> --key=<key> --value=<value> |
Update a single competition setting. |
toggle-competition-status |
[--site=<ID>] |
Toggle the active/inactive status of a competition. |
reset |
[--site=<ID>] [--letsgo] |
Reset all competition data for a site. |
bust-competition-cache |
[--site=<ID>] |
Delete the competition settings transient. |
anonymize-social-login <identifier> |
[--letsgo] [--quiet] |
Anonymize a social-login registration by Facebook identifier: clears identifier, lastname, email, emailverified, and photourl across all network sites, replacing displayname with firstname. Dry-run by default. |