PluginBench
Skill
Fail
Audit score 45

wordpress-setup

jezweb/claude-skills

How to install wordpress-setup

npx skills add https://github.com/jezweb/claude-skills --skill wordpress-setup
Claude Code
Cursor
Windsurf
Cline
Full instructions (SKILL.md)

Source of truth, from jezweb/claude-skills.


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

SymptomFix
Permission denied (publickey)Check SSH key: ssh -v user@host
wp: command not found via SSHWP-CLI not in remote PATH — use full path: /usr/local/bin/wp
Error: This does not appear to be a WordPress installationWrong path — check wp-path argument
Timeout on large operationsAdd --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

Related skills

More from jezweb/claude-skills and the wider catalog.

ZUzustand-state-management logo

zustand-state-management

jezweb/claude-skills

|

1.3k installs
AIai-image-generator logo

ai-image-generator

jezweb/claude-skills

Generate AI images using Gemini or GPT APIs directly. Covers model selection (Gemini for scenes; GPT Image 2 for text rendering, batch variations, multi-reference compositing; GPT Image 1.5 for transparent icons), the 5-part prompting framework, API calling patterns, multi-turn editing, and quality assurance. Produces photorealistic scenes, icons, illustrations, OG images, posters, infographics, and product shots. Use when building websites that need images, creating marketing assets, or generating visual content. Triggers: 'generate image', 'ai image', 'create hero image', 'make an icon', 'generate illustration', 'create og image', 'poster', 'infographic', 'image variations', 'gpt-image-2', 'ai art', 'image generation'.

999 installs
APapp-docs logo

app-docs

jezweb/claude-skills

Generate complete user documentation for a web app with screenshots. Browses the app via browser automation, screenshots every screen, and produces a structured user guide with step-by-step instructions, annotated screenshots, workflow diagrams, and reference tables. Supports quick (key screens), standard (all pages), thorough (every state and flow), and exhaustive (publishable documentation suite). Triggers: 'document the app', 'user guide', 'app documentation', 'screenshot docs', 'generate user docs', 'help docs', 'how-to guide', 'write the docs'.

737 installs
AUaussie-business-english logo

aussie-business-english

jezweb/claude-skills

Australian business English writing style for professional communications — warm, direct, EN-AU spelling (colour, organise, centre). Use whenever the user is writing for an Australian audience: emails, chat messages, proposals, client communications, blog posts, web copy, or any business writing. Apply to drafting, editing, and tone-checking professional text.

982 installsAudited
DRdrawio logo

drawio

jgraph/drawio-mcp

Generate editable draw.io diagrams as .drawio files, with optional export to PNG/SVG/PDF or browser URL.

2.0k installs
PYpython-backend logo

python-backend

jiatastic/open-python-skills

Production-ready Python backend patterns for FastAPI, SQLAlchemy, and Upstash integrations.

1.8k installs