在开发服务器上将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_id
和parent
在wp_taxonomy
表删除和更改中的多个ACF值wp_options
添加新的_split_terms
行输入wp_options
在中复制了多个值wp_terms
最合适的回答,由SO网友:Will B. 整理而成
在尝试多次升级各种WP和ACF版本后,我得出结论:WP 3.8
到4.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/