我正在运行一个函数,用指定的值填充一些自定义字段:
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篇帖子上点击“更新自己”?
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/