私はpre_user_query' to change the query to include some
meta_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
は適切に更新されたことを示しますが、管理パネルのユーザーリストは影響を受けません - すべてのユーザーの古いリストです。
WordPressのドキュメントによるとpre_user_query
を使っています
WP_User_Queryが解析された後、そしてクエリが実行される前に発生します。
引数がWordPressにとって意味を持つときは、pre_get_users
と同じようにpre_get_posts
を使うべきです。
pre_get_users
WP_User_Queryが解析される前に発生します
フックを
add_action('pre_get_users', 'modify_user_list');