WP_SPLIT_SHARED_TERM_BATCH弄乱升级的ACF 5数据

时间:2018-10-29 作者:Will B.

在开发服务器上将Wordpress和相关插件升级到最新版本并将源文件和数据库迁移到生产服务器之后,来自ACF的数据就不同了。

prod和dev服务器(dev是prod的一个流浪克隆)

CentOS 6.9
Apache 2.4
PHP 5.6 (php-fpm using mod_proxy_fcgi)
MySQL 5.7
DocRoot: /home/user/example.com
升级:

Wordpress:        3.8.4  => 4.9.8
ACF:              4.4.12 => 5.7.7
ACF Repeater:     1.0.1  => 2.1.0
ACF Page Options: 1.0.1  => 2.1.0
UPDATE (删除了不需要的信息)

我成功地用WP_CRON 残废重新启用后WP_CRON, 我遇到了数据问题。

手动执行时查看数据操作wp-cron.php, 我已经确定问题是由wp_split_shared_term_batch.

比较运行wp cron前后的wp\\u选项、wp\\u术语和wp\\u分类表。php显示了对ACF数据的大量更改。

分配不同的term_idparentwp_taxonomywp_options_split_terms 行输入wp_optionswp_terms

1 个回复
最合适的回答,由SO网友:Will B. 整理而成

在尝试多次升级各种WP和ACF版本后,我得出结论:WP 3.84.2 具有ACF 4 数据无法升级到WP 4.3+ 具有ACF 5.

Reason

WP 4.3引入了一种称为split_shared_term, 这会影响ACF 5使用的数据。ACF 4以升级到ACF 5后由WP 4.3+术语拆分重新索引的方式存储数据。导致ACF无法找到这些拆分项的指定索引。

我认为这是ACF 5数据库升级的一个问题,没有充分考虑WP 4.3+将从ACF 4数据创建的拆分条款。

我已就此问题联系了ACF支持团队,并就ACF 5的升级可能未完全完成或出现错误的原因做出了一般性回应。根据他们的建议,在wp_options 表并再次强制运行数据库升级,会导致重复数据,但索引引用仍然无效。

我设法找到了一个插件,当从WP 4.0升级到4.3时,它似乎可以缓解ACF 4中的问题,但不适用于ACF 5。插件名为acf-split-terms 在github上。

有关拆分条款的更多详细信息,请参阅https://make.wordpress.org/core/2015/02/16/taxonomy-term-splitting-in-4-2-a-developer-guide/

结束

相关推荐

显示所有类别而不是分配给特定帖子的类别的GET_TERMS

我的自定义帖子类型中有3篇帖子(\'careers\'). 我注册了自定义分类法(\'career_categories\').我创建了3个职位,其中两个职位属于“全职”,一个职位属于“兼职”。我在循环中使用以下代码:$terms = get_terms( \'career_categories\', array( \'hide_empty\' => true, ) ); $html_out .= \'<td class=\"column-\'. $col++ .\'\"&g

WP_SPLIT_SHARED_TERM_BATCH弄乱升级的ACF 5数据 - 小码农CODE - 行之有效找到问题解决它

WP_SPLIT_SHARED_TERM_BATCH弄乱升级的ACF 5数据

时间:2018-10-29 作者:Will B.

在开发服务器上将Wordpress和相关插件升级到最新版本并将源文件和数据库迁移到生产服务器之后,来自ACF的数据就不同了。

prod和dev服务器(dev是prod的一个流浪克隆)

CentOS 6.9
Apache 2.4
PHP 5.6 (php-fpm using mod_proxy_fcgi)
MySQL 5.7
DocRoot: /home/user/example.com
升级:

Wordpress:        3.8.4  => 4.9.8
ACF:              4.4.12 => 5.7.7
ACF Repeater:     1.0.1  => 2.1.0
ACF Page Options: 1.0.1  => 2.1.0
UPDATE (删除了不需要的信息)

我成功地用WP_CRON 残废重新启用后WP_CRON, 我遇到了数据问题。

手动执行时查看数据操作wp-cron.php, 我已经确定问题是由wp_split_shared_term_batch.

比较运行wp cron前后的wp\\u选项、wp\\u术语和wp\\u分类表。php显示了对ACF数据的大量更改。

分配不同的term_idparentwp_taxonomywp_options_split_terms 行输入wp_optionswp_terms

1 个回复
最合适的回答,由SO网友:Will B. 整理而成

在尝试多次升级各种WP和ACF版本后,我得出结论:WP 3.84.2 具有ACF 4 数据无法升级到WP 4.3+ 具有ACF 5.

Reason

WP 4.3引入了一种称为split_shared_term, 这会影响ACF 5使用的数据。ACF 4以升级到ACF 5后由WP 4.3+术语拆分重新索引的方式存储数据。导致ACF无法找到这些拆分项的指定索引。

我认为这是ACF 5数据库升级的一个问题,没有充分考虑WP 4.3+将从ACF 4数据创建的拆分条款。

我已就此问题联系了ACF支持团队,并就ACF 5的升级可能未完全完成或出现错误的原因做出了一般性回应。根据他们的建议,在wp_options 表并再次强制运行数据库升级,会导致重复数据,但索引引用仍然无效。

我设法找到了一个插件,当从WP 4.0升级到4.3时,它似乎可以缓解ACF 4中的问题,但不适用于ACF 5。插件名为acf-split-terms 在github上。

有关拆分条款的更多详细信息,请参阅https://make.wordpress.org/core/2015/02/16/taxonomy-term-splitting-in-4-2-a-developer-guide/

相关推荐

显示所有类别而不是分配给特定帖子的类别的GET_TERMS

我的自定义帖子类型中有3篇帖子(\'careers\'). 我注册了自定义分类法(\'career_categories\').我创建了3个职位,其中两个职位属于“全职”,一个职位属于“兼职”。我在循环中使用以下代码:$terms = get_terms( \'career_categories\', array( \'hide_empty\' => true, ) ); $html_out .= \'<td class=\"column-\'. $col++ .\'\"&g