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

WordPress Advanced Custom Fields (ACF) not saved

我有一个使用 ACF(高级自定义字段)的 WordPress 网站。我有 2 个自定义 select 字段,允许用户在 post 上进行 selected - 这些字段称为 'Author' 和 'Editor'.

该站点有大约 5000 个 post,对于站点上的一些较旧的 post,自定义 'Author' 和 'Editor' 字段未被尽管自定义字段似乎在 post 编辑器屏幕中设置正确,但仍被拉到网站的前端。

如果我进入个人 post 和 re-save/update 它,那么自定义字段似乎可以正常工作并被拉到站点的前端。不幸的是,批量编辑 posts 和 re-saving/updating 它们似乎没有修复 posts 的相同效果。因为我有 5000 个 post,所以每个 re-save/update 都不太可行。

更新:我已经尝试过 Stender 评论中提供的 link 中的说明 - 它似乎没有像手动更新单个 [=31] 那样更新 ACF 字段数据=].与使用 wp_update_post() 相比,手动方法期间是否发生了不同的事情?

有没有人知道如何解决 post 自定义字段没有被批量拉到前端的问题?

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

我找到了一个 blog post,其中包含有关如何批量更新 ACF (post_meta) 字段的说明。

function mass_update_posts() {

    $args = array(
        'post_type'=>'post-type',
        'posts_per_page'   => -1
    );

    $my_posts = get_posts($args);

    foreach($my_posts as $key => $my_post) {
        $meta_values = get_post_meta( $my_post->ID);

        foreach($meta_values as $meta_key => $meta_value) {
            update_field($meta_key, $meta_value[0], $my_post->ID);
        }
    }
}

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

add_action( 'init', 'mass_update_posts' );

我会添加操作和功能,加载网站一次,然后将其注释掉,这样它就不会再次加载。

所以,事实证明 ACF 自定义字段数据实际上已经正确存储,但出于某种原因,ACF 函数 get_field() 没有提取某些帖子的数据,尽管它确实存在。似乎只有旧帖子受到影响,我不确定确切原因。 (较早的帖子可能已被导入,但我不是 100% 确定)

无论如何,我最终通过使用 WordPress 自己的检索元 data/custom 字段的函数解决了这个问题:get_post_meta()。涉及的代码有点多,但现在对我有用了。

感谢大家的帮助!