Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress高级自定义字段(ACF)未保存_Php_Wordpress_Advanced Custom Fields_Custom Fields_Posts - Fatal编程技术网

Php WordPress高级自定义字段(ACF)未保存

Php WordPress高级自定义字段(ACF)未保存,php,wordpress,advanced-custom-fields,custom-fields,posts,Php,Wordpress,Advanced Custom Fields,Custom Fields,Posts,我有一个WordPress网站,它使用ACF(高级自定义字段)。我有两个自定义的选择字段,允许用户在帖子中选择-这些字段称为“作者”和“编辑” 该网站大约有5000篇文章,对于网站上一些较老的文章,自定义“作者”和“编辑”字段没有被拉到网站前端,即使自定义字段似乎在“文章编辑器”屏幕中设置正确 如果我进入一个单独的帖子并重新保存/更新它,那么自定义字段看起来工作正常,并被拉到站点的前端。不幸的是,批量编辑帖子并重新保存/更新它们似乎没有修复帖子的效果。因为我有5000篇帖子,所以单独重新保存/更

我有一个WordPress网站,它使用ACF(高级自定义字段)。我有两个自定义的选择字段,允许用户在帖子中选择-这些字段称为“作者”和“编辑”

该网站大约有5000篇文章,对于网站上一些较老的文章,自定义“作者”和“编辑”字段没有被拉到网站前端,即使自定义字段似乎在“文章编辑器”屏幕中设置正确

如果我进入一个单独的帖子并重新保存/更新它,那么自定义字段看起来工作正常,并被拉到站点的前端。不幸的是,批量编辑帖子并重新保存/更新它们似乎没有修复帖子的效果。因为我有5000篇帖子,所以单独重新保存/更新每个帖子是不可行的

更新:我已经尝试了Stender评论中提供的链接中的说明-它似乎没有以手动更新单个帖子的方式更新ACF字段数据。与使用wp_update_post()相比,手动方法期间是否发生了一些不同的情况

有没有人对我如何修复自定义字段没有被大量拉到前端的帖子有什么想法

如果您需要更多信息或有任何问题,请随时提问。

我找到了一个关于如何批量更新ACF(post_meta)字段的说明

您可以通过挂接到
init
来调用此函数

add_action( 'init', 'mass_update_posts' );

我会添加操作和函数,加载网站一次,然后对其进行注释,这样它就不会再次加载了。

因此,事实证明ACF自定义字段数据实际上已经正确存储,但由于某些原因,ACF函数
get_field()
在某些帖子的数据确实存在时,并没有拉入这些数据。似乎只有老帖子受到影响,我不确定确切的原因。(以前的帖子可能已经被导入,但我不是100%确定)

无论如何,我最终还是解决了这个问题,使用WordPress自己的函数来检索元数据/自定义字段:
get\u post\u meta()
。有一点更多的代码涉及,但它现在为我工作


无论如何,感谢大家的努力帮助

我想你可以跟随这个问题的答案,因为它会更新/重新保存帖子:嗨,Stender,谢谢你的评论。不幸的是,我已经尝试过了,虽然它更新了帖子,但似乎没有保存/更新自定义字段……嗨,雅各布,我也找到了博客帖子,并尝试了你之前提供的功能,但这似乎也没有解决自定义字段也没有保存/存储的问题。所以我还是被卡住了…:-(你能把你的代码贴在这里吗?我现在面临着同样的问题,你的代码对我帮助很大。
add_action( 'init', 'mass_update_posts' );