如何使WordPress数据库具有可移植性且独立于url?
问题 我即将在多人团队环境中进行一些WordPress开发。(一次有3个或更多的人在同一个代码库上工作,每个人都在本地开发) 使用我们与之合作的其他CMS,每个人都将其安装指向同一个数据库,并且由于CMS /数据库的工作方式,这意味着我们可以从安装目录中将相同的内容(位于不同的URL)馈入我们的安装中。同一数据库,没有太大问题(除了偶尔必须同步上传文件夹) 我的问题是,使用WordPress,是什么阻止了我们使用这种方法,又如何解决这些问题呢? 例如。WordPress的三个副本都在同一个数据库中运行。 http://dev.local/developer-a/ http://dev.local/developer-b/ http://dev.local/developer-c/ 等等 我希望不用多说,这只会在发布之前处于开发环境中。 主要问题 在数据库中引用特定的URL(wp_posts并wp_options表似乎) 如果一个人安装了插件,则其他人将没有该插件,这将导致数据库中的并发问题 保持上传文件夹同步 当前解决方案 目前,我已经开始解决第一个问题。我将以下内容放在mu-plugins文件夹中的文件中。 该代码本质上通过用唯一令牌替换url的任何实例来过滤帖子内容进入和离开数据库的过程。 <?php define('PORTABILITY_TOKEN', '{_portable_}'); function portability_remove_home($content) { $content = str_replace(get_option('home'), PORTABILITY_TOKEN, $content); return $content; } add_filter('content_save_pre', 'portability_remove_home'); function portability_add_home($content) { $content = str_replace(PORTABILITY_TOKEN, get_option('home'), $content); return $content; } add_filter('the_content', 'portability_add_home'); add_filter('the_editor_content', 'portability_add_home'); 我已经使用安装了WordPress的环境通过php设置了home和siteurl选项。(同样,这仅用于开发),这意味着对于每个单独的WordPresses安装,发布内容在到达客户端时将看起来像在该url上运行。 …