Wordpress Setup
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.
- Skill ID
- jezweb/claude-skills/wordpress-setup
- Publisher
- jezweb
- Repository
- claude-skills
- Installs
- 0
- Files
- 2
- Requires
- claude-code-only
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
jezweb/claude-skills/wordpress-setupInstalls these files- SKILL.md
- references/wp-cli-essentials.md
What this skill tells the agent
WordPress Setup
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.
Workflow
Step 1: Check WP-CLI
wp --versionIf not installed, guide the user:
# 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/wpAlso ensure the SSH extension is available (needed for remote sites):
wp package install wp-cli/ssh-commandStep 2: Connect to the Site
Option A: WP-CLI over SSH (preferred)
wp --ssh=user@hostname/path/to/wordpress option get siteurlCommon patterns:
- Rocket.net:
wp --ssh=user@hostname/www/sitename/public option get siteurl - cPanel:
wp --ssh=user@hostname/public_html option get siteurl - Custom: Ask user for SSH user, host, and WordPress path
Test with a simple command first:
wp --ssh=user@host/path core versionOption B: REST API with Application Password
If SSH isn't available:
- Navigate to
https://example.com/wp-admin/profile.php(or use browser automation) - Scroll to "Application Passwords" section
- Enter a name (e.g. "Claude Code") and click "Add New Application Password"
- Copy the generated password (spaces are part of it but optional in auth)
Test the connection:
curl -s https://example.com/wp-json/wp/v2/posts?per_page=1 \
-u "username:xxxx xxxx xxxx xxxx xxxx xxxx" | jq '.[0].title'Step 3: Store Credentials
For WP-CLI SSH — create a wp-cli.yml in the project root:
ssh:
sitename:
cmd: ssh -o StrictHostKeyChecking=no %pseudotty% user@hostname %cmd%
url: /path/to/wordpressThen 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.).
Step 4: Verify Full Access
Run a comprehensive check:
# 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 statusStep 5: Save Site Config
Create wordpress.config.json for other skills to reference:
{
"site": "example.com",
"siteUrl": "https://example.com",
"accessMethod": "ssh",
"sshAlias": "sitename",
"wpPath": "/path/to/wordpress",
"hasElementor": true,
"elementorVersion": "3.x.x"
}Critical Patterns
SSH Connection Issues
| 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 |
WP-CLI Aliases
Define aliases in ~/.wp-cli/config.yml for frequently-accessed sites:
@client1:
ssh: user@client1.example.com/www/public
@client2:
ssh: user@client2.rocketcdn.me/www/client2/publicThen: wp @client1 post list
REST API Gotchas
- Application passwords require HTTPS (won't work on HTTP)
- Some security plugins block REST API — check for 401/403 responses
- Caching plugins may serve stale REST responses — use
?_=${timestamp}cache buster - Custom post types need
show_in_rest: trueto appear in API
Reference Files
references/wp-cli-essentials.md— SSH alias patterns, common flags, and troubleshooting
More from jezweb
Use this skill in a project
Open any RiverX project, search the Skills panel for jezweb/claude-skills/wordpress-setup, and install it in one click.
