您可以尝试使用“直接”WP_User_Query
.
$user_search = new WP_User_Query( array(
\'orderby\' => \'display_name\',
\'fields\' => \'all_with_meta\',
\'meta_key\' => \'CAT OR WHATEVER KEY NAME\',
\'meta_value\' => $cat_id,
\'meta_compare\' => \'=\'
) );
$users = $user_search->get_results();
未经测试,但应能正常工作。
Update
据我所知
$meta_value
在…内
update_metadata()
(包装的函数
update_user_meta()
), 接受单个值。将其序列化的唯一方法是
maybe_serialize();
, 仅按需序列化。所以问题一定在你这边
$cat_ID
元值。
您可以在maybe_serialize()
使用以下过滤器:
apply_filters( "update_{$meta_type}_metadata", null, $object_id, $meta_key, $meta_value, $prev_value )
{$meta_type}
会是
user
在这种情况下。放下你的
$cat_ID
在一些测试函数中查看发生了什么。