基本上,你没有正确使用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; ..