应用程序密码(Application Password)是 WordPress 从 5.6 起引入的一项功能,它允许第三方服务(如 n8n、Zapier)通过 REST API 安全访问 WordPress,而无需暴露真实账户密码。
遇到的这个问题是 WordPress 安全机制的一部分。以下是几种解决方案:
方案一:配置开发环境(推荐)
在 wp-config.php文件中的 /* 好了!请不要再继续编辑。请保存本文件。使用愉快! */这行之前添加:
// 启用开发环境
define('WP_ENVIRONMENT_TYPE', 'development');
// 或者使用(两者选一)
define('WP_ENVIRONMENT_TYPE', 'local');
方案二:强制启用应用程序密码
在主题的 functions.php文件或自定义插件中添加:
// 强制启用应用程序密码,即使没有HTTPS
add_filter('wp_is_application_passwords_available', '__return_true');
方案三:使用过滤器绕过HTTPS检查
// 更全面的解决方案
add_filter('wp_is_application_passwords_available_for_user', function($available, $user) {
return true;
}, 10, 2);
方案四:为开发站配置HTTPS
使用本地证书:
- 使用 mkcert(推荐):
bashbash复制# 安装 mkcert brew install mkcert # macOS # 或 sudo apt install mkcert # Ubuntu # 生成本地CA mkcert -install # 为本地域名生成证书 mkcert example.test - 配置虚拟主机使用HTTPS
使用 Laravel Valet 或 Local by Flywheel:
这些工具会自动处理HTTPS。
方案五:修改 WordPress 核心检查(不推荐)
在 wp-config.php中添加:
// 禁用SSL验证(仅开发环境使用!)
define('FORCE_SSL_ADMIN', false);
// 允许不安全的REST API请求
$_SERVER['HTTPS'] = 'on'; // 有时可以绕过检查
最佳实践建议:
- 开发环境:使用方案一 + 方案二
- 本地开发:建议实际设置HTTPS(方案四),更接近生产环境
- 临时测试:使用方案二最快
验证是否生效:
- 添加代码后,重新登录WordPress后台
- 进入 用户 → 个人资料
- 页面底部应该出现”应用程序密码”区域
- 生成密码后,可以通过REST API测试:
bashbash复制curl --user "用户名:生成的应用程序密码" http://yoursite.com/wp-json/wp/v2/posts
安全警告:
⚠️ 重要:这些设置只应在开发或本地环境中使用。部署到生产环境前,请:
- 确保网站已启用HTTPS
- 移除或禁用上述开发配置
- 在
wp-config.php中设置:phpphp复制define('WP_ENVIRONMENT_TYPE', 'production');
选择最适合您开发环境的方案即可快速解决问题。

必须 注册 为本站用户, 登录 后才可以发表评论!