直接composer require wordpress/plugin-name必然失败,因wordpress插件不在packagist官方源,必须配置wpackagist.org仓库、composer/installers依赖及extra.installer-paths路径映射三者缺一不可。

composer require wordpress/plugin-name 会直接报错,因为 WordPress 插件根本不在 Packagist 官方源里。必须用 wpackagist.org 镜像源,配对 composer/installers 和 extra.installer-paths,三者缺一不可。
为什么直接 require wordpress/plugin-name 失败?
Packagist(packagist.org)只收录标准 PHP 包,不抓取 WordPress.org 插件库。你输的 wordpress/xxx 这类包名在官方源里根本不存在。
-
wpackagist-plugin/advanced-custom-fields才是真实可用的包名,前缀固定为wpackagist-plugin/ - 插件 slug 来自 URL:比如
https://wordpress.org/plugins/yoast-seo/→ slug 是yoast-seo - 不加仓库配置时,Composer 默认只查
packagist.org,压根不会去wpackagist.org
必须配置的三项:仓库 + 安装器 + 路径映射
少任何一项,插件都会被装进 vendor/ 下,WordPress 后台完全看不到。
- 在
composer.json的repositories字段里加镜像源:"repositories": [ { "type": "composer", "url": "https://wpackagist.org" } ] - require
composer/installers(建议 ^2.0) - 在
extra中声明路径映射,例如:"extra": { "installer-paths": { "wp-content/plugins/{$name}/": ["type:wordpress-plugin"], "wp-content/themes/{$name}/": ["type:wordpress-theme"] } }
私有插件或付费插件怎么处理?
自己写的插件或 ACF Pro 这类付费插件,不能靠 wpackagist 自动同步,但路径映射逻辑一样有效。
- 插件根目录的
composer.json必须显式写"type": "wordpress-plugin",否则composer/installers不识别 - 如果是 Git 仓库方式引入(
"type": "vcs"),远程仓库的composer.json也得有这个type - 付费插件需配合
auth.json提供私有仓库凭证,但installer-paths规则照常生效 - 注意:路径中别写
web/app/plugins这类 Bedrock 结构,除非你项目已用 Bedrock 的wp-config.php做了重定向
装完插件但后台不显示?先查这三件事
不是权限问题,也不是网络超时,90% 是路径或元数据没对上。
- 检查
wp-content/plugins/xxx/目录是否存在,且里面包含主文件(如xxx.php) - 确认主文件顶部有标准 WordPress 插件头注释(
/* Plugin Name: xxx */),否则后台无法识别 - 执行
composer dump-autoload并刷新页面——尤其改过 autoload 或新增类后,这步容易漏
路径映射和插件头注释这两处,最容易被跳过,但恰恰决定插件能不能被 WordPress 看见。











