Wordpress Staging Site

时间:2018-09-18 作者:QuickSort

Problem:

我不想在生产中开发wordpress网站的(新功能)。所以我建立了一个staging server 其中运行相同的wordpress安装。

因此,当我在临时服务器上开发新功能时,其他一些用户在生产中添加了内容。此外,我们使用一个页面生成器->一些设计也被修改。(我们还做了一些前端工作,并使用页面生成器实现了一些功能)

这意味着,当新功能准备就绪时,我不能简单地用临时站点覆盖生产站点,因为我会丢失添加的内容(主要是数据库中的内容)

我怎样才能做到这一点?因此,关键要求是:

1) 开发登台的新功能

2) 用户可以在live上添加内容和更改设计(使用页面生成器)

(我发现了类似的问题,但没有一个让我高兴:/)

2 个回复
SO网友:Breus

我担心没有一个能让你快乐的答案。这个问题没有(简单/好的)解决方案。在大多数情况下,生产(暂存)环境只涉及WordPress网站的代码(FTP文件),而实时版本会对数据库进行更改(例如向其中添加内容)。因此,通常,当您想要更新实时版本时,您(Git)会将网站的新版本拉到服务器上,而不接触数据库。此外,可以手动更改WordPress中的一些次要设置,这将更新数据库。

但是,在您描述的特定情况下,使用页面生成器在登台网站上开发新功能/页面,登台版本和网站的live变体都会对数据库进行更改。

据我所知,更新live网站的唯一方法是找出哪些数据库记录是由页面生成器更新的,然后手动将这些记录添加到live数据库中。我所知道的唯一“真正”的解决方案是在代码本身中创建新特性,但我可以看出这对您来说可能不是一个解决方案。

TL;DR:两个变体(阶段/活动)都对数据库进行了更改,它们必须合并,这一点很重要。

SO网友:WebElaine

这里有几个选项。一种方法是创建自己的自定义数据库表来存储所有开发特性。这样,您只需将特定表从staging推送到prod。

另一种选择是跟踪要插入到临时数据库中的记录,并创建一个MySQL脚本来运行,将更改复制到生产中。我相信你也知道,媒体库本身就是一个挑战,所以我的解决办法是,我通常直接将新媒体上传到制作网站,并在登台时引用这些图像。这样,当我将新帖子从staging推送到prod时,它们已经引用了正确的image-live URL、正确的db ID等等。

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register