预期行为:
当用户更新WP仪表板中的ACF并点击更新时,代码将检查更新的状态字段,如果值已更改,还将修改上次更新字段,然后保存所有信息。
现实:
整体内容已更新,但上次更新字段不受 update_sub_field 代码的影响。但是,如果我在结尾处删除了返回$ post行,则会保存上次更新字段,但整体内容将恢复为原始值(未保存)。
我需要两个人都得救!我感觉事情并没有以正确的顺序发生,如果我能找到正确的过滤器/动作来运行,我可以完成这个任务,但到目前为止,这些都没有使用下面的代码(尝试了不同的优先级)作为args,以及):
add_action( 'acf/save_post' , 'update_post');
add_action( 'save_post' , 'update_post');
add_filter( 'wp_insert_post_data' , 'update_post');
非常感谢任何帮助。谢谢!
function update_post( $post ) {
$projectCount = -1;
if( have_rows('project') ):
while( have_rows('project') ): the_row();
$taskCount = -1;
$projectCount++;
if( have_rows('project_issue') ):
while( have_rows('project_issue') ): the_row();
$taskCount++;
$oldValue = get_sub_field('project_current_status');
$newValue = $_POST['acf']['field_594afbf65e909'][$projectCount]['field_594afd675e90d'][$taskCount]['field_594c05c666a9f'];
$date = date('Ymd');
$updated = ($oldValue !== $newValue) ? 'true' : 'false';
if ( $updated == 'true' ) {
update_sub_field('project_last_update', $date);
}
endwhile;
endif;
endwhile;
endif;
return $post;
}
答案 0 :(得分:0)
我知道那是一个很老的帖子, 但我认为我有一个问题,基于您遇到的相同问题。
我想知道您是否能解决这个问题并分享答案?
我会发表评论,但对不起。