如何通过前端ACF表单字段值填充WordPress的post_tag
解决ACF前端表单无法同步字段值到WordPress post_tag的问题
我用acf_form()在前端渲染表单,用户输入的值能正常填充自定义文章类型(CPT)的ACF字段,但无法将其中一个ACF字段的值同步到WordPress的post_tag标签中。
最初尝试直接在acf_form的new_post参数里设置post_tag,也试过用tax_input参数,均未生效:
原尝试代码片段
$post_tag_value = get_field('field_6637a50a428cd'); acf_form(array( 'post_id' => 'new_post', 'new_post' => array( 'post_type' => 'test-review', 'post_status' => 'pending', 'post_tag' => $post_tag_value, ), // 其他参数... ));
最终通过acf/save_post钩子配合wp_set_post_tags()函数解决了问题:
解决方案代码
function my_acf_save_post( $post_id ) { // 获取当前文章对应的ACF字段值 $post_tag_value = get_field('field_6637a50a428cd', $post_id); if( !empty($post_tag_value) ) { // 同步值到post_tag,第三个参数true表示替换原有标签,false为追加 wp_set_post_tags( $post_id, $post_tag_value, true ); } } // 设置优先级20,确保ACF字段已保存完成再执行 add_action('acf/save_post', 'my_acf_save_post', 20);
内容的提问来源于stack exchange,提问作者Jeanluc Carbonel
相关产品推荐
相关产品推荐

