不能用composer install一键部署wordpress插件,它只下载解压,默认放入vendor/;必须同时满足三条件:目标包声明"type": "wordpress-plugin"、项目已装composer/installers、extra.installer-paths正确配置路径。

不能用 composer install 一键部署 WordPress 插件——它只负责下载和解压,不负责放对位置。必须配合 composer/installers、正确的 type 声明和 extra.installer-paths 配置,三者缺一不可。
为什么 composer install 装完插件却在 vendor/ 里?
因为 Composer 默认逻辑就是把所有包放进 vendor/。WordPress 不会扫描这个目录,所以后台看不到插件。真正起搬运作用的是 composer/installers 这个包,但它只响应特定 type 的包(比如 "type": "wordpress-plugin"),且仅在你明确配置了 extra.installer-paths 后才触发移动动作。
- 目标插件包(如
wpackagist-plugin/akismet)的composer.json中必须有"type": "wordpress-plugin"—— 不是library,也不能为空 - 你的项目必须已执行过
composer require composer/installers:^2.0 -
composer.json的extra段里必须有"installer-paths"映射,例如:"wp-content/plugins/{$name}/": ["type:wordpress-plugin"] - 已存在的包不会被重定位:删掉
vendor/和composer.lock后再跑composer install,规则才生效
装插件前必须配好的三个硬性条件
少一个,composer require wpackagist-plugin/xxx 就只会把 ZIP 解到 vendor/wpackagist-plugin/xxx,而不是 wp-content/plugins/xxx/。
将 LaTeX(.tex)学术论文转换为 Word(.docx),支持可编辑的 OMML 公式、原生 Word 表格、嵌入图形、IEEE 双栏排版及参考文献
-
repositories段要加 wpackagist.org 源:{"type": "composer", "url": "https://wpackagist.org"},否则wpackagist-plugin/*根本找不到 -
require里要有"composer/installers": "^2.0"——^1.x不支持wordpress-plugin类型 -
extra.installer-paths的路径必须真实存在,且以/结尾;{$name}是包名最后一段(wpackagist-plugin/akismet→akismet),不是 ZIP 文件名
installer-paths 路径写法常见错误
路径变量只认 {$name} 和 {$vendor},其他一律忽略。Windows 下斜杠方向或结尾缺失会导致创建失败。
- ✅ 正确:
"wp-content/plugins/{$name}/": ["type:wordpress-plugin"] - ❌ 错误:
"wp-content/plugins/{$name}-v{$version}/": []——{$version}不被解析,结果可能生成空目录 - ❌ 错误:
"wp-contentplugins{$name}\"—— 反斜杠在 Linux/macOS 下无效,且结尾没/ - ❌ 错误:
"./wp-content/plugins/{$name}/"——./会被忽略,路径变成相对当前工作目录,不稳定
验证是否真生效的最快方式
别只看命令有没有报错,得查实际文件落点:
- 运行
composer install -v,日志里出现WordPressInstaller::install才说明搬运逻辑被触发 - 检查
wp-content/plugins/目录下是否有对应插件文件夹(不是vendor/下) - 登录 WordPress 后台 → 插件页面,确认插件状态为“未启用”而非“不存在”
- 如果插件没出现,立刻检查:该包在 wpackagist.org 页面 上显示的
type是否真是wordpress-plugin
最常被忽略的是:插件包自己没声明 type,或者你本地漏装了 composer/installers。这两点不解决,配再多路径也没用。










