Loading...
Loading...
Connect to a WordPress site via WP-CLI over SSH or REST API. Workflow: check CLI, test SSH connection, set up auth, verify access, save config. Use when connecting to a WordPress site, setting up WP-CLI access, creating application passwords, or troubleshooting WordPress connection issues.
npx skill4agent add jezweb/claude-skills wordpress-setupwp --version# macOS/Linux
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wpwp package install wp-cli/ssh-commandwp --ssh=user@hostname/path/to/wordpress option get siteurlwp --ssh=user@hostname/www/sitename/public option get siteurlwp --ssh=user@hostname/public_html option get siteurlwp --ssh=user@host/path core versionhttps://example.com/wp-admin/profile.phpcurl -s https://example.com/wp-json/wp/v2/posts?per_page=1 \
-u "username:xxxx xxxx xxxx xxxx xxxx xxxx" | jq '.[0].title'wp-cli.ymlssh:
sitename:
cmd: ssh -o StrictHostKeyChecking=no %pseudotty% user@hostname %cmd%
url: /path/to/wordpresswp @sitename option get siteurl.dev.varsWP_SITE_URL=https://example.com
WP_USERNAME=admin
WP_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx.dev.vars.gitignoreUse mcp__vault__secret_set with:
name: "wordpress-{sitename}-credentials"
value: JSON with url, username, app_password
tags: ["wordpress", "api"]# Site info
wp @sitename option get siteurl
wp @sitename option get blogname
# Content access
wp @sitename post list --post_type=page --posts_per_page=5 --fields=ID,post_title,post_status
# Plugin status (check for Elementor)
wp @sitename plugin status elementor
# Theme info
wp @sitename theme statuswordpress.config.json{
"site": "example.com",
"siteUrl": "https://example.com",
"accessMethod": "ssh",
"sshAlias": "sitename",
"wpPath": "/path/to/wordpress",
"hasElementor": true,
"elementorVersion": "3.x.x"
}| Symptom | Fix |
|---|---|
| Check SSH key: |
| WP-CLI not in remote PATH — use full path: |
| Wrong path — check |
| Timeout on large operations | Add |
~/.wp-cli/config.yml@client1:
ssh: user@client1.example.com/www/public
@client2:
ssh: user@client2.rocketcdn.me/www/client2/publicwp @client1 post list?_=${timestamp}show_in_rest: truereferences/wp-cli-essentials.md