我正在为使用OpenShift托管的wordpress应用程序开发插件。我可以从openshift克隆git存储库,我得到一个像这样的结构
├── .openshift
│ ├── action_hooks
│ │ ├── build
│ │ ├── deploy
│ │ ├── post_deploy
│ │ └── pre_build
│ ├── config
│ │ └── wp-config.php
│ ├── cron
│ │ ├── README.cron
│ │ ├── daily
│ │ ├── hourly
│ │ ├── minutely
│ │ ├── monthly
│ │ └── weekly
│ ├── languages
│ │ ├── .gitkeep
│ │ └── plugins
│ ├── markers
│ │ └── README
│ ├── openshift.inc
│ ├── pear.txt
│ ├── plugins
│ │ ├── .gitkeep
│ │ ├── myplugin.php
│ │ └── buddypress
│ └── themes
│ └── .gitkeep
├── README
├── README.md
├── libs
│ └── .gitkeep
├── misc
│ └── .gitkeep
└── php
└── .gitkeep
使用git push
部署到openshift时,会自动将内容移动到服务器上的正确位置。
我想在本地运行开发实例并复制该过程。如何将插件,主题等移动到本地wp-content中的正确位置,就像openhift在服务器上一样?
答案 0 :(得分:1)
如果你只改变WP_CONTENT_DIR
而不改变WP_CONTENT_URL
,你可能会在前端和后端看到一个破碎的主题。原因是WordPress仍然会从your_domain/wp-contents/themes/your_theme/
获取资源,即使现在您已经将wp-content指向另一个文件夹。
受到@bcole的启发,我尝试了一种减轻负担的方法:将您的openshift repo文件夹放在本地wordpress文件夹下。
以下是步骤:
$ cd wordpress_folder
从遥控器Cloen你的openshift repo:
$ git clone ssh://12345678asdf123@your_app-your_domain.rhcloud.com/~/git/your_app.git/
(您可以在登录后从您的openshift仪表板获取远程URL)
在本地启动您的WordPress应用程序(您可以设置本地主机服务器并通过经典的Wordpress 5分钟启动过程)
修改WordPress文件夹中的wp-config.php
文件(不是.openshift/config
文件夹中的文件!)
在define('ABSPATH', dirname(__FILE__) . '/');
之前添加这两行:
define('WP_CONTENT_DIR', dirname(__FILE__) . '/your_app/.openshift');
define('WP_CONTENT_URL', '/your_app/.openshift');
your_app/.openshift/
git add
,git commit
,然后git push
到远程与@bcole方法的唯一区别在于我们现在将openshift INSIDE放在wordpress文件夹中,而不是NEXT TO它。好处是现在我们可以以更体面的方式定义WP_CONTENT_URL
。
希望这会有所帮助!
答案 1 :(得分:0)
本地开发的一种可能性是创建一个WordPress实例,该实例配置为查看项目存储库的所有正确文件夹,而不实际移动任何项目结构。您可以通过组合符号链接和wp-config选项来实现此目的。
把它放在任何地方,也许在主要项目仓库旁边。
├── project-repo-checkout
│ └── .openshift, etc
└── wordpress
将它放在wordpress目录中,或者升级到一级。
您可以创建一个干净的wp-config文件,仅用于开发,或者如果您需要在项目仓库中使用wp-config,则可以执行此操作:
define('WP_CONTENT_DIR', '/path/to/repo/.openshift');
require('/path/to/repo/.openshift/config/wp-config.php');
选项WP_CONTENT_DIR
告诉WordPress查看文件夹.openshift
并将其视为wp-content
文件夹。那么它将寻找'主题'和'插件'而是在.openshift
文件夹中。
我有一个WordPress的git repo看起来有点像这样:
├── wp-config.php
├── src
│ ├── plugins
│ ├── themes
│ └── other stuff
└── wordpress
├──wp-admin
└──wp-includes
请注意wordpress核心文件在他们自己的文件夹中关闭,并且所有开发内容都在src
和wp-config.php
之外,并且被git忽略。
wp-config.php中的这一行告诉WordPress在开发文件夹中查找所有内容:
define('WP_CONTENT_DIR', '/path/to/project/src');
然后它会在' src'对于名为' plugins'的文件夹和'主题'并且好像' src'现在是wp-content
目录。
我在学习过程中学到的一些警告:不可能将这些主题与符号联系起来。或者'插件'文件夹,因为WordPress使用PHP代码检查实际目录的存在。可以通过符号链接上传'文件夹虽然。