我在帖子上有一些 ACF 用户字段,可以在其中选择用户,我想将这些字段合并到另一个字段中。所以基本上字段 1 和字段 2 中的用户会显示在字段 3 中。这是我到目前为止所尝试过的。字段的返回格式是用户数组。
add_action( 'acf/save_post',
'my_acf_save_post', 10 );
function my_acf_save_post( $post_id ) {
// Get value of field 1
$value1 = get_field( 'contractor',
$post_id );
// Get value of field 2
$value2 = get_field( 'architect',
$post_id );
update_field( 'project_user_select',
$value1 . $value2, $post_id );
}
我能够使用 array_merge 让它工作。
function my_acf_save_post_31( $post_id ) {
// Get new value of field 1
$value1 = get_field( project_manager', $post_id, false );
// Get new value of field 2
$value2 = get_field( 'architect', $post_id, false );
// Get new value of field 3
$value3 = get_field( 'contractor', $post_id, false );
$merge = array_merge($value1,$value2,$value3);
update_field( 'project_user_select', $merge, $post_id );// update
'other_field' with 'my_field' value
}
add_action( 'acf/save_post', 'my_acf_save_post_31', 10 );
如果其中一个值有可能为空,我会这样写:
// Get new value of field 1 or set value to null
if(!empty(get_field( 'project_manager' )) {
$value1 = get_field( project_manager', $post_id, false );
} else {
$value1 = '';
}
它的作用是检查字段是否有条目,如果有,则会将值分配给变量
$value
。如果该字段没有值,它只会声明变量,因此当您尝试将每个 $values
添加到 $merge
时,它仍然可以工作,因为变量已被声明。