基本上,你没有正确使用array_push()
.
array_push()
修改原始/输入数组passed by reference 并返回数组中新的元素数。
因此add_post_meta( $groupItem->ID, $meta, array_push( $user_ids, 26 ) )
, 实际上,您正在将meta值设置为$user_ids
而不是数组中的项—例如,add_post_meta()
会得到1
而不是[26]
.
所以如果你想使用array_push()
, 你可以这样做:
if ( ! $user_ids ) {
$user_ids = [];
array_push( $user_ids, 26 );
add_post_meta( $groupItem->ID, $meta, $user_ids );
} else {
$prev_user_ids = $user_ids; // backup old values
array_push( $user_ids, 26 );
update_post_meta( $groupItem->ID, $meta, $user_ids, $prev_user_ids );
}
或者简单地使用
$user_ids[] = 26;
..