填写ACF字段值后更新帖子

时间:2021-03-08 作者:user1374796

我正在运行一个函数,用指定的值填充一些自定义字段:

add_filter(\'acf/load_field/name=event_end_time\', function($endField) {
    $endDate = get_field(\'event_end_date\');
    $endHour = get_field(\'event_end_hour\');
    $endMinute = get_field(\'event_end_minute\');
    $endMeridian = get_field(\'event_end_meridian\');
    $end12 = $endHour . \':\' . $endMinute . $endMeridian;
    $end24 = date("H:i:s", strtotime($end12));
    $finalEndDateTime = $endDate . \' \' . $end24;
    $endField[\'value\'] = __($finalEndDateTime, \'txtdomain\');
    return $endField;   
});
这将填充字段event_end_time 如预期,所需值将按预期显示在字段中。。。这很好。但在我进入并手动“更新”每篇文章之前,这些值都不会出现在前端。

我想知道但没有成功的是,是否可以扩展这个功能来“更新”帖子,这样我就不必在500-600篇帖子上点击“更新自己”?

1 个回复
SO网友:lucrece

这是正常的行为。

在您保存之前,ACF字段值不会直接添加到您的帖子中。我一直在面对这个问题;“发布”;最近

这是因为您在发布后创建了字段。因此,您的帖子没有关联值。

load_field 不会在现有帖子上增加价值,它只会在帖子表单版本上增加你的价值。

我的建议是,您可以执行一个一次性功能,在一秒钟内更新所有帖子。

foreach(get_posts($args) as $post) {
  $data[] = ... // your event data
  update_field(\'your_field_group\', $data, $post->ID); 
}
这里要小心,您可能希望使用add_row函数而不是update_字段(取决于您的需要)https://www.advancedcustomfields.com/resources/add_row/