0

0

composer如何安装wordpress_使用composer管理wp插件依赖【指南】

尼克

尼克

发布时间:2026-03-18 12:32:31

|

781人浏览过

|

来源于php中文网

原创

WordPress 官方未提供 Composer 包,需用 johnpbloch/wordpress 等第三方包管理核心,并通过 composer/installers 将插件、主题安装到 web/wp-content 对应目录;wp-config.php 等定制文件需 Git 跟踪,更新后须手动同步入口文件。

composer如何安装wordpress_使用composer管理wp插件依赖【指南】

composer install wordpress 会失败,因为 WordPress 官方不提供 composer 包

直接运行 composer create-project wordpress/wordpress 或类似命令会报错:找不到包。WordPress 核心本身未发布到 Packagist,也没有官方维护的 wordpress/wordpress Composer 包。你看到的某些教程用的其实是第三方镜像(比如 johnpbloch/wordpress),它只是定期同步官方 zip 包并打标签,并非 WordPress 官方行为。

所以第一步必须明确:你不是在“安装 WordPress”,而是在用 Composer 管理一个含 WordPress 的项目结构——核心文件由 Composer 下载,主题/插件可声明为依赖项。

  • 推荐使用 johnpbloch/wordpress(最稳定,更新及时,支持 WP-CLI 兼容路径)
  • 避免用 roots/wordpress(已归档,不再维护)
  • 不要手动改 vendor/wordpress 目录里的文件——它会被重写,所有定制应通过 wp-content 目录完成

wp-content 必须脱离 vendor,否则插件/主题无法被 WordPress 加载

Composer 默认把所有包装进 vendor/,但 WordPress 只从固定位置读取 wp-content/pluginswp-content/themes。如果你把插件直接 require 进 vendor/,它们根本不会出现在后台列表里。

解决办法是用 composer/installers + 自定义安装路径,把插件、主题、mu-plugins 映射到正确的子目录:

{
  "require": {
    "johnpbloch/wordpress": "^6.5",
    "wpackagist-plugin/advanced-custom-fields": "^6.3",
    "wpackagist-theme/twentytwentyfour": "^1.0"
  },
  "extra": {
    "installer-paths": {
      "web/wp-content/plugins/{$name}/": ["type:wordpress-plugin"],
      "web/wp-content/themes/{$name}/": ["type:wordpress-theme"],
      "web/wp-content/mu-plugins/{$name}/": ["type:wordpress-muplugin"]
    }
  }
}
  • wpackagist-plugin/wpackagist-theme/ 是 WPACKAGIST 提供的镜像源,自动同步 wordpress.org 上的公开插件/主题
  • web/ 是你的 webroot,需与 Web 服务器配置一致;若用 public/,就全换成 public/wp-content/...
  • 别漏掉 "type:wordpress-plugin" 这类 type 声明——它是 composer/installers 匹配路径的关键

wp-cli 命令在 composer 管理项目中容易找不到 wp-config.php

执行 wp plugin listwp rewrite structure 时提示 Could not find wp-config.php,是因为 WP-CLI 默认从当前目录向上找 wp-config.php,而 Composer 项目结构里它通常在 web/ 下,且 wp-settings.php 路径可能被改写。

有三个实际可用的解法:

Jamboss
Jamboss

Jamboss是一款简单的AI音乐生成App,可以一键生成歌曲。

下载
  • web/ 目录再运行 wp 命令(最简单,适合本地开发)
  • --path=web/ 参数:例如 wp plugin list --path=web/
  • 设环境变量 WP_CLI_PHP_ARGS="-d auto_prepend_file=$(pwd)/web/wp-config.php"(不推荐,易出错)

注意:wp core download 这类命令在 Composer 项目里完全不需要——核心由 johnpbloch/wordpress 提供,手动下载反而破坏一致性。

更新 WordPress 核心时,vendor 中的文件不会自动复制到 web/

运行 composer update johnpbloch/wordpress 后,新版本只更新了 vendor/johnpbloch/wordpress 里的代码,但 web/ 下的 index.phpwp-load.php 等入口文件不会自动同步。这些文件必须手动或通过脚本复制过去,否则站点会 500 或白屏。

标准做法是加一个 post-update-cmd 脚本:

"scripts": {
  "post-update-cmd": [
    "cp -R vendor/johnpbloch/wordpress/* web/"
  ]
}
  • Linux/macOS 用 cp,Windows 用户需换 xcopy 或用 roave/composer-bundle 类工具
  • 复制前建议先 rm -f web/index.php web/wp-*.php web/license.txt,避免残留旧文件干扰
  • 这个步骤极易被忽略——很多团队更新后发现后台还能进,但前台挂了,就是入口文件没更新

真正麻烦的是 wp-content 之外的定制:比如修改过的 wp-config.php、自定义 wp-settings.php 补丁、或 .htaccess 规则,这些都不会被 Composer 管理,得靠 Git 跟踪和人工合并。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

163

2023.12.25

require的用法
require的用法

require的用法有引入模块、导入类或方法、执行特定任务。想了解更多require的相关内容,可以阅读本专题下面的文章。

510

2023.11.27

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

1000

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

582

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

275

2023.07.24

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

572

2024.04.09

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

533

2024.04.09

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1562

2023.07.26

Python WebSocket实时通信与异步服务开发实践
Python WebSocket实时通信与异步服务开发实践

本专题聚焦 Python 在实时通信场景中的开发实践,系统讲解 WebSocket 协议原理、长连接管理、消息推送机制以及异步服务架构设计。内容包括客户端与服务端通信实现、连接稳定性优化、消息队列集成及高并发处理策略。通过完整案例,帮助开发者构建高效稳定的实时通信系统,适用于聊天应用、实时数据推送等场景。

3

2026.03.18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
第二十四期_PHP8编程
第二十四期_PHP8编程

共86课时 | 3.5万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.6万人学习

第二十三期_PHP编程
第二十三期_PHP编程

共93课时 | 7.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号