Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Connect to a WordPress site via WP-CLI over SSH or the REST API. Check CLI, test SSH, set up auth, verify access, save config. Use whenever the user wants to connect to a WordPress site, set up WP-CLI access, create an Application Password, or troubleshoot WordPress connection / auth issues.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 8% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-20 | ✓→✓ | = Same ✓ | 10% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 34% | 0% |
Connect to a WordPress site and verify working access via WP-CLI or REST API. Produces a verified connection config ready for content management and Elementor editing.
bashwp --version
If not installed, guide the user:
bash# 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/wp
Also ensure the SSH extension is available (needed for remote sites):
bashwp package install wp-cli/ssh-command
Option A: WP-CLI over SSH (preferred)
bashwp --ssh=user@hostname/path/to/wordpress option get siteurl
Common patterns:
wp --ssh=user@hostname/www/sitename/public option get siteurlwp --ssh=user@hostname/public_html option get siteurlTest with a simple command first:
bashwp --ssh=user@host/path core version
Option B: REST API with Application Password
If SSH isn't available:
https://example.com/wp-admin/profile.php (or use browser automation)Test the connection:
bashcurl -s https://example.com/wp-json/wp/v2/posts?per_page=1 \ -u "username:xxxx xxxx xxxx xxxx xxxx xxxx" | jq '.[0].title'
For WP-CLI SSH — create a wp-cli.yml in the project root:
yamlssh: sitename: cmd: ssh -o StrictHostKeyChecking=no %pseudotty% user@hostname %cmd% url: /path/to/wordpress
Then use: wp @sitename option get siteurl
For REST API — store in .dev.vars:
WP_SITE_URL=https://example.com
WP_USERNAME=admin
WP_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxxEnsure .dev.vars is in .gitignore. For cross-project use, store in your preferred secrets manager (environment variable, 1Password CLI, etc.).
Run a comprehensive check:
bash# 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 status
Create wordpress.config.json for other skills to reference:
json{ "site": "example.com", "siteUrl": "https://example.com", "accessMethod": "ssh", "sshAlias": "sitename", "wpPath": "/path/to/wordpress", "hasElementor": true, "elementorVersion": "3.x.x" }
| Symptom | Fix | |---------|-----| | Permission denied (publickey) | Check SSH key: ssh -v user@host | | wp: command not found via SSH | WP-CLI not in remote PATH — use full path: /usr/local/bin/wp | | Error: This does not appear to be a WordPress installation | Wrong path — check wp-path argument | | Timeout on large operations | Add --ssh=user@host/path --allow-root or increase SSH timeout |
Define aliases in ~/.wp-cli/config.yml for frequently-accessed sites:
yaml@client1: ssh: user@client1.example.com/www/public @client2: ssh: user@client2.rocketcdn.me/www/client2/public
Then: wp @client1 post list
?_=${timestamp} cache bustershow_in_rest: true to appear in APIreferences/wp-cli-essentials.md — SSH alias patterns, common flags, and troubleshootingOther measured skills in the registry, with their headline benchmark lift.