Skip to content
Development
Skill

/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 /

From plugin
jezweb-skills
1.1k63 skills57 commands

Claude Code

$ npx -y skills add jezweb/claude-skills --skill wordpress-setup --agent claude-code

SKILL.md

wordpress-setup.SKILL.md
name: wordpress-setup
description: "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."
compatibility: claude-code-only

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 --version

If 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/wp

Also ensure the SSH extension is available (needed for remote sites):

wp package install wp-cli/ssh-command

Step 2: Connect to the Site

**Option A: WP-CLI over SSH (preferred)**

wp --ssh=user@hostname/path/to/wordpress option get siteurl

Common 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 version

**Option B: REST API with Application Password**

If SSH isn't available:

1. Navigate to `https://example.com/wp-admin/profile.php` (or use browser automation) 2. Scroll to "Application Passwords" section 3. Enter a name (e.g. "Claude Code") and click "Add New Application Password" 4. 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/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 xxxx

Ensure `.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 status

Step 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/public

Then: `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: true` to appear in API

---

Reference Files

  • `references/wp-cli-essentials.md` — SSH alias patterns, common flags, and troubleshooting
Read more
@jezweb
Ships withjezweb-skills

Production workflow skills for Claude Code. Each skill guides Claude through a recipe to produce tangible output — scaffolded projects, generated assets, professional documents, deployed services. Ten plugins of practical, production-oriented skills.

Stars on GitHub

Momentum

stars in total
1.1k
Star history of jezweb/claude-skills on GitHub, a chart by star-history.com

Other skills on jezweb-skills.

cloudflare-api

cloudflare-api

Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email…

d1-drizzle-schema

d1-drizzle-schema

Generate Drizzle ORM schemas for Cloudflare D1 databases with correct D1-specific patterns. Produces schema files, migration…

d1-migration

d1-migration

Cloudflare D1 migration workflow: generate with Drizzle, inspect SQL for gotchas, apply to local and remote, fix stuck…

db-seed

db-seed

Generate database seed scripts with realistic sample data. Reads Drizzle schemas or SQL migrations, respects foreign key…

hono-api-scaffolder

hono-api-scaffolder

Scaffold Hono API routes for Cloudflare Workers. Produces route files, middleware, typed bindings, Zod validation, error…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about wordpress-setup.

Which coding agents can use wordpress-setup?
wordpress-setup installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.