将多个 ACF 用户字段合并为一个

问题描述 投票:0回答:2

我在帖子上有一些 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 );
}
wordpress advanced-custom-fields acfpro
2个回答
1
投票

我能够使用 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 );

0
投票

如果其中一个值有可能为空,我会这样写:

// 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
时,它仍然可以工作,因为变量已被声明。

© www.soinside.com 2019 - 2024. All rights reserved.