所以我最近开始使用基于this教程的WordPress编写器。
这是我的composer.json
文件:
{
"repositories": [
{
"type": "package",
"package": {
"name": "wordpress",
"type": "webroot",
"version": "4.3",
"dist": {
"type": "zip",
"url": "https://github.com/WordPress/WordPress/archive/4.3.zip"
},
"require" : {
"fancyguy/webroot-installer": "1.0.0"
}
}
}
],
"require": {
"wordpress": "4.*",
"fancyguy/webroot-installer": "1.0.0"
},
"extra": {
"webroot-dir": "public/wp",
"webroot-package": "wordpress"
}
}
它工作正常,我有这个文件夹结构:
正如教程中提到的,我将index.php
,wp-config.php
和wp-content
目录复制到了wp
目录之外,并替换了路径。
到目前为止,一切都很完美:
关于使用源代码管理工具进行内务管理。您要忽略composer.phar文件和public / wp目录。 其他所有东西都可以被提交和推送。
所以看起来除了public/wp
文件夹之外,所有内容都可以被提交和推送。 (包括wp-content文件夹)
这是我不明白的事情。我们必须提交/推送wp-content
目录,因为它有一个不同的位置,但同时这个wp-content
文件夹包含plugins
和themes
文件夹我们的插件和主题将使用不应该提交/推送的作曲家添加?。
插件和主题也将使用composer添加到开发环境中,因此我们不能提交它们,但它们位于wp-content
目录中应该提交?
在another类似教程中,wp-content
被设置到.gitignore
文件中,这意味着它不应该被提交/推送。但是,如果是这样的话,谁将移动(以及如何)开发环境中的wp-content
外wp
目录。
有人可以澄清这方面吗?
答案 0 :(得分:1)
将wp-content
拆分为单独的目录非常棒。
我个人只提交wp-content
中属于当前项目的项目。想到这一点的另一种方法是提交任何 not 与Composer一起添加。
例如,您可能正在处理具有父主题的网站,您正在使用Composer并保留未经修改的网站,以及您正在进行更改的子主题。
在此示例中,应提交子主题并忽略父主题,因为您只更改子主题中的代码。
.gitignore
文件如下所示:
# Ignore everything in wp-content
wp-content/*
# Do not ignore the themes directory. This is needed to add the child theme (below)
!wp-content/themes
# Ignore all of the themes directory contents, including the parent theme
wp-content/themes/*
# Do not ignore the child theme
!wp-content/themes/child-theme/
我通常也会使用插件做同样的事情。由Composer引入的任何插件都会被忽略,但是特定于当前项目的插件(不会在其他地方使用)将被提交。
希望这有帮助。
答案 1 :(得分:0)
这个想法是:生成的任何东西都不应该被版本化。
谁将移动(以及如何)开发环境中的
wp-content
外wp
目录。
这是部署问题,是发布管理的一部分
这意味着服务器端的post-receive挂钩将负责根据新推送的源生成正确的内容,并在其内容刷新后移动/复制wp-content
文件夹。
一般要点是:人们通常将版本控制与部署区分开来。移动内容是在部署期间,在发布管理期间完成的,例如通过钩子将正确的资源移动到正确的位置。