跳到主要内容
知仓学习社ZHICANG

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…

读凭据执行命令联网严重 1 · 高危 0jezweb/claude-skills

它会碰到什么

扫了多少2 个文本文件,6 KB
它会碰到什么读凭据执行命令联网
命中总数3 处
命中统计严重 1 · 高 0 · 中 0 · 低 0
逐条看命中(1 条严重或高危)
  • 严重 references/wp-cli-essentials.md:84cred-paths
    | SSH key not accepted | Check `~/.ssh/config` for correct IdentityFile |

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

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

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 1,010
本站分层T1
该仓技能数63
原文件路径plugins/wordpress/skills/wordpress-setup/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 63 个技能