WP-CLI Commands

SIA Publishing and Play — WP-CLI Commands

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.