サポート » 使い方全般 » 管理画面のユーザー一覧内での特定ユーザーの非表示

  • ユーザー登録できる小さなサイトを運営しています。

    ユーザー一覧に登録されている全てのユーザーが表示されますが、自分以外の管理者がログインした場合、特定の登録ユーザーは非表示されるように設定したいです。

    例えば、ユーザー情報の「色が赤」と登録されているユーザーは自分以外の管理者では表示されない

    みたいな設定です。

    manage_users_columns
    pre_get_users
    pre_user_query

    などユーザー関連の情報を一通り、調査してみたのですが、参考になる情報がなかったためこちらで質問させていただいています。

    他力で申し訳ございませんが、参考となるコードや情報などありましたら、教えていただきたいです。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    pre_user_query フックあたりで検索条件 (where) を追加すればできると思います。
    下記ページのサンプルコードが参考になると思います。

    pre_user_query | Hook | WordPress Developer Resources

    例:

    add_action( 'pre_user_query', function( $uqi ) {
    	global $wpdb;
    
    	$user = wp_get_current_user();
    
    	//if ( 'administrator' === $user->roles[0] ) { return; }
    
    	$where = $wpdb->prepare("(ID NOT IN (SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key='色' AND {$wpdb->usermeta}.meta_value='赤')) OR ID=%d", $user->ID );
    	$uqi->query_where = str_replace( 'WHERE 1=1', "WHERE 1=1 AND {$where}", $uqi->query_where );
    });
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「管理画面のユーザー一覧内での特定ユーザーの非表示」には新たに返信することはできません。