更改用户元表中的ID数组以适应不同的格式

时间:2018-04-28 作者:dryan1144

我正在开发的一个网站WP Post Favorites 在usermeta表中存储post ID。我现在正尝试将这些数据移植到一个新站点(用户和usermeta表已经迁移了),但使用的是另一个插件(Favorites). 新网站有相同的内容,但帖子ID因各种原因发生了变化,我们无法控制。

我正在尝试编写一个脚本:

用新站点的新帖子ID替换旧帖子ID。在每个用户的“wpfp\\u收藏夹”用户元密钥中。我在csv文件中有相应的新旧帖子IDa:3:{i:0;s:4:"4615";i:1;s:4:"2747";i:2;s:4:"9635";} 新插件的格式(“simplefavorites”元键:a:1:{i:0;a:3:{s:7:"site_id";i:1;s:5:"posts";a:1:{i:0;i:9075;}s:6:"groups";a:1:{i:0;a:4{s:8:"group_id";i:1;s:7:"site_id";i:1;s:10:"group_name";s:12:"Default List";s:5:"posts";a:1:{i:0;i:9075;}}}}}注意:

所有post ID都是4位数,所以序列化应该不会太大,我认为我们可能需要运行一次SQL查询,或者可能需要一个WP操作,每个用户在下次登录时只运行一次,从技术上讲,替换新站点上的所有post ID以匹配旧站点是可行的,但考虑到Posteta表,这似乎会更加复杂,etc需要考虑没有收藏夹的用户,etc这是一个拥有超过10万用户的大型网站,关于构建这种类型的查询有什么指导吗?

1 个回复
SO网友:Tom J Nowell

要可靠地做到这一点,您必须获取每个用户并拉入元,然后逐个地再次写出它。

使用自定义WP CLI命令执行此操作。如果您没有SSH访问权限,可以拉下站点的副本并在本地计算机上运行,然后将更改推回

结束

相关推荐

using ajax to query sql

我尝试改编本教程:https://kyokasuigetsu25.wordpress.com/2011/02/02/dynamically-load-mysql-data-using-jquery-and-php/对于我的插件。当我没工作的时候,我在wordpress上读到了你用过的jQuery 而不是$ 并使用wp_enqueue_script( \'jquery\');因此,我在主php中尝试了以下代码:add_action(\'wp_enqueue_scripts\', \'callback_for