我正在尝试使用pre_user_query\' to change the query to include some
meta\\u query`变量。
我的目标是仅在用户列表中显示共享公共meta_value
使用当前登录的用户。。。
function modify_user_list($query){
$user = wp_get_current_user();
if( ! current_user_can( \'edit_user\' ) ) return $query;
$user_id = $user->ID;
$user_branch_number = get_user_meta($user_id, \'user_branch_number\', true);
$query->query_vars[\'meta_key\'] = \'user_branch_number\';
$query->query_vars[\'meta_value\'] = $user_branch_number;
$query->query_vars[\'meta_compare\'] = \'=\';
}
add_action(\'pre_user_query\', \'modify_user_list\');
如果我
print_r
查询将显示
query_vars
已适当更新,但管理面板中的用户列表不受影响-每个用户的旧列表相同。
最合适的回答,由SO网友:Sumit 整理而成
您正在使用pre_user_query
根据WordPress文档
在分析WP\\U User\\u查询之后和执行查询之前激发
那么你应该使用pre_get_users
就像pre_get_posts
当你的论点对WordPress有意义时。
pre_get_users
在分析WP\\u User\\u查询之前激发
将挂钩更换为
add_action(\'pre_get_users\', \'modify_user_list\');