用于同步的单独数据库表中的自定义帖子类型

时间:2017-01-23 作者:Darius

我有一个自定义的帖子类型,需要在位于不同服务器的两个不同网站之间同步。如果其中一个站点进行编辑、插入或删除,则另一个数据库也必须更新其数据库以进行更改。我看到的问题是,ID将在两个数据库之间偏移。

因此,我的基本原理是,为什么我不能创建一个自定义的post类型以容纳在不同的数据库表中,并在两个安装之间同步这一表?

我看到的问题是,我需要考虑URL的冲突。Page slug;“你好,世界”;和自定义post类型slug“;“你好,世界”;访问URL站点时。com/你好世界。

有人给我指个方向吗?

编辑:深入研究并思考。在save\\u post上,检查它是否是自定义post类型,连接到其他数据库,并执行最后一个插入ID,将其存储在本地,然后使用post的内部ID更新外部数据库,怎么样?

enter image description here

2 个回复
最合适的回答,由SO网友:Greeso 整理而成

基于以上细节,我可以想到以下建议:

创建一个设置,其中两台服务器使用相同的数据库。如果两个设置都相同,则可以使用此选项

同步数据(选项1)。编写一个安装在两台服务器上的插件,该插件将定期从另一个数据库读取数据并更新自己的记录

同步数据(选项2)。编写这样的功能,当您更新数据库1中的记录时,它将触发发送到第二次安装的REST API调用。然后,第二个安装将通过该调用从第一个安装接收更新的数据,并更新自己的记录。

创建一个两个安装都可以访问的中央数据库,该中央数据库将包含两个安装的共享数据

您是否想过WordPress网络设置(不确定此设置是否适用于此环境,您必须确定此设置是否符合您的要求)

就我个人而言,基于我对问题的理解,我喜欢选项3和选项4,但同样,我没有像你那样了解全部情况。

SO网友:mikeg542

如果要创建一个单独的表来连接两个WordPress安装,则需要自定义删除、编辑和添加功能,以便将数据发送到正确的数据库。

如果您已经需要创建这些自定义功能(许多方法可以连接到自定义的post类型post、edit、delete等),为什么不让一个站点拥有“master DB”,而另一个站点只使用wpdb连接到另一个DB并获取、编辑、发布到它。不需要复杂的一致性检查,因为所有一致性都保存在一个表中。

相关推荐

Sync comment data

我有一个网站,在一段时间内使用Facebook的评论,然后删除他们的本地WP评论。我能够编写一个函数,抓取所有注释并将其重新插入WP数据库(因为FB注释不存储在WP中)。然而,Facebook的OpenGraph API不提供电子邮件地址(我理解)。因此,我想实现以下目标:使用comment_author按该名称提取所有评论如果一个评论数组中存在电子邮件地址,请将其复制到缺少的电子邮件地址我已经完成了#1和#2,但我对#3感到不知所措。有什么想法吗?