wordpress-setup

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

WordPress Setup

WordPress 站点配置

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.
通过WP-CLI或REST API连接WordPress站点并验证可用访问权限,生成可用于内容管理和Elementor编辑的已验证连接配置。

Workflow

工作流程

Step 1: Check WP-CLI

步骤1:检查WP-CLI

bash
wp --version
If not installed, guide the user:
bash
undefined
bash
wp --version
如果未安装,引导用户执行以下命令:
bash
undefined

macOS/Linux

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):

```bash
wp package install wp-cli/ssh-command
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

同时确保SSH扩展可用(远程站点需要):

```bash
wp package install wp-cli/ssh-command

Step 2: Connect to the Site

步骤2:连接站点

Option A: WP-CLI over SSH (preferred)
bash
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:
bash
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:
bash
curl -s https://example.com/wp-json/wp/v2/posts?per_page=1 \
  -u "username:xxxx xxxx xxxx xxxx xxxx xxxx" | jq '.[0].title'
选项A:通过SSH使用WP-CLI(推荐)
bash
wp --ssh=user@hostname/path/to/wordpress option get siteurl
常见路径模式:
  • Rocket.net:
    wp --ssh=user@hostname/www/sitename/public option get siteurl
  • cPanel:
    wp --ssh=user@hostname/public_html option get siteurl
  • 自定义: 询问用户SSH用户名、主机地址和WordPress路径
先使用简单命令测试连接:
bash
wp --ssh=user@host/path core version
选项B:使用应用密码通过REST API连接
如果SSH不可用:
  1. 访问
    https://example.com/wp-admin/profile.php
    (或使用浏览器自动化工具)
  2. 滚动到“应用密码”区域
  3. 输入名称(例如“Claude Code”)并点击“添加新应用密码”
  4. 复制生成的密码(空格是密码的一部分,但在身份验证中可省略)
测试连接:
bash
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

步骤3:存储凭据

For WP-CLI SSH — create a
wp-cli.yml
in the project root:
yaml
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 Vault:
Use mcp__vault__secret_set with:
  name: "wordpress-{sitename}-credentials"
  value: JSON with url, username, app_password
  tags: ["wordpress", "api"]
对于WP-CLI SSH连接 — 在项目根目录创建
wp-cli.yml
文件:
yaml
ssh:
  sitename:
    cmd: ssh -o StrictHostKeyChecking=no %pseudotty% user@hostname %cmd%
    url: /path/to/wordpress
之后可使用:
wp @sitename option get siteurl
对于REST API连接 — 将凭据存储在
.dev.vars
文件中:
WP_SITE_URL=https://example.com
WP_USERNAME=admin
WP_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx
确保
.dev.vars
已添加到
.gitignore
中。如需跨项目使用,可存储在Vault中:
使用mcp__vault__secret_set命令,参数如下:
  name: "wordpress-{sitename}-credentials"
  value: 包含url、username、app_password的JSON数据
  tags: ["wordpress", "api"]

Step 4: Verify Full Access

步骤4:验证完整访问权限

Run a comprehensive check:
bash
undefined
运行全面检查命令:
bash
undefined

Site info

站点信息

wp @sitename option get siteurl wp @sitename option get blogname
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
wp @sitename post list --post_type=page --posts_per_page=5 --fields=ID,post_title,post_status

Plugin status (check for Elementor)

插件状态(检查Elementor)

wp @sitename plugin status elementor
wp @sitename plugin status elementor

Theme info

主题信息

wp @sitename theme status
undefined
wp @sitename theme status
undefined

Step 5: Save Site Config

步骤5:保存站点配置

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"
}

创建
wordpress.config.json
文件,供其他技能引用:
json
{
  "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

SSH连接问题排查

SymptomFix
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 operationsAdd
--ssh=user@host/path --allow-root
or increase SSH timeout
症状解决方法
Permission denied (publickey)
检查SSH密钥:
ssh -v user@host
通过SSH执行时提示
wp: command not found
WP-CLI不在远程服务器PATH中 — 使用完整路径:
/usr/local/bin/wp
Error: This does not appear to be a WordPress installation
路径错误 — 检查
wp-path
参数
大型操作时超时添加
--ssh=user@host/path --allow-root
参数或增加SSH超时时间

WP-CLI Aliases

WP-CLI别名

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
~/.wp-cli/config.yml
中定义常用站点的别名:
yaml
@client1:
  ssh: user@client1.example.com/www/public
@client2:
  ssh: user@client2.rocketcdn.me/www/client2/public
之后可使用:
wp @client1 post list

REST API Gotchas

REST API注意事项

  • 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

  • 应用密码需要HTTPS环境(在HTTP环境下无法使用)
  • 部分安全插件会拦截REST API — 检查是否返回401/403状态码
  • 缓存插件可能返回过期的REST响应 — 使用
    ?_=${timestamp}
    参数清除缓存
  • 自定义文章类型需要设置
    show_in_rest: true
    才能在API中显示

Reference Files

参考文件

  • references/wp-cli-essentials.md
    — SSH alias patterns, common flags, and troubleshooting
  • references/wp-cli-essentials.md
    — SSH别名模式、常用参数及故障排查指南