mcpField
W
wordpress-setup

wordpress-setup

github.com/jezweb云与 DevOps1.1k1.5k 次安装3 周前更新
代码仓库

关于 wordpress-setup

wordpress-setup 是用于连接 WordPress 站点并验证访问权限的技能,供后续内容管理和 Elementor 编辑使用。它指导通过 WP-CLI over SSH 或 REST API 配置连接,并保存站点配置。

主要功能

  1. 01检测并配置 WP-CLI
  2. 02通过 SSH 或 REST API 连接
  3. 03验证站点及内容访问
  4. 04保存可复用的站点配置

适用场景

  1. 01为远程 WordPress 站点建立连接
  2. 02确认页面内容和插件可访问
  3. 03为其他技能准备站点配置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jezweb/claude-skills --skill wordpress-setup

安装后在 Claude Code 中输入/wordpress-setup确认已加载。

附带文件references/wp-cli-essentials.md

详细介绍

WordPress 设置

连接到 WordPress 网站,并通过 WP-CLI 或 REST API 验证访问是否正常。生成已验证的连接配置,可用于内容管理和 Elementor 编辑。

工作流

第 1 步:检查 WP-CLI
wp --version

如果尚未安装,请引导用户:

# 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

另请确保 SSH 扩展可用(远程网站需要):

wp package install wp-cli/ssh-command
第 2 步:连接到网站

选项 A:通过 SSH 使用 WP-CLI(首选)

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 路径

先使用简单命令进行测试:

wp --ssh=user@host/path core version

选项 B:使用应用程序密码访问 REST API

如果无法使用 SSH:

  1. 前往 https://example.com/wp-admin/profile.php(或使用浏览器自动化)
  2. 滚动到“应用程序密码”部分
  3. 输入名称(例如“Claude Code”),然后点击“添加新的应用程序密码”
  4. 复制生成的密码(空格属于密码的一部分,但进行身份验证时可以省略)

测试连接:

curl -s https://example.com/wp-json/wp/v2/posts?per_page=1 \
  -u "username:xxxx xxxx xxxx xxxx xxxx xxxx" | jq '.[0].title'
第 3 步:存储凭据

对于 WP-CLI SSH — 在项目根目录中创建 wp-cli.yml:

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。若要跨项目使用,请将其存储在你偏好的密钥管理器中(环境变量、1Password CLI 等)。

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

运行全面检查:

# 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
第 5 步:保存网站配置

创建 wordpress.config.json,供其他技能引用:

{
  "site": "example.com",
  "siteUrl": "https://example.com",
  "accessMethod": "ssh",
  "sshAlias": "sitename",
  "wpPath": "/path/to/wordpress",
  "hasElementor": true,
  "elementorVersion": "3.x.x"
}

关键模式

SSH 连接问题
症状修复方法
Permission denied (publickey)检查 SSH 密钥:ssh -v user@host
通过 SSH 执行时出现 wp: command not foundWP-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 别名

在 ~/.wp-cli/config.yml 中为常用网站定义别名:

@client1:
  ssh: [email protected]/www/public
@client2:
  ssh: [email protected]/www/client2/public

然后:wp @client1 post list

REST API 注意事项
  • 应用程序密码需要 HTTPS(无法在 HTTP 上使用)
  • 某些安全插件会拦截 REST API — 检查是否收到 401/403 响应
  • 缓存插件可能会提供过期的 REST 响应 — 使用 ?_=${timestamp} 作为缓存清除参数
  • 自定义文章类型需要设置 show_in_rest: true 才会显示在 API 中

参考文件

  • references/wp-cli-essentials.md — SSH 别名模式、常用标志和故障排除

评论

支持 Markdown