サポート » 使い方全般 » 名前やニックネームでも検索できる様にユーザー検索をカスタマイズしたい。

  • 解決済 luvjapan

    (@luvjapan)


    管理画面のフロフィールページで名前やニックネームを登録しています。

    こちらの情報をユーザー一覧の右上のsearch-boxに名前やニックネームを入力して「ユーザーを検索」を押しても「お探しのユーザーは見つかりませんでした。」と表示され検索結果が表示されません。

    色々自分なりに調べてみたのですが
    こちらの記事が似てると思い新規インストールしたWordPressの利用テーマ(Twenty Fourteenバージョン: 1.9)のfunctions.phpに追記してみたのですが狙い通りにいきません。

    ユーザー一覧の検索で名前やニックネームでも検索できる方法がありましたら是非教えて下さい。

    何卒、宜しくお願い致します。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 luvjapan

    (@luvjapan)

    自己解決いたしました。

    解決いたしましたコードはこちらになります。

    function extended_user_search( $user_query ) {
      // Make sure this is only applied to user search
      if ( $user_query->query_vars['search'] ){
        $search = trim( $user_query->query_vars['search'], '*' );
        if ( $_REQUEST['s'] == $search ){
          global $wpdb;
    
          $user_query->query_from .= " JOIN {$wpdb->usermeta} as UM1 ON UM1.user_id = {$wpdb->users}.ID AND UM1.meta_key = 'first_name'";
          $user_query->query_from .= " JOIN {$wpdb->usermeta} as UM2 ON UM2.user_id = {$wpdb->users}.ID AND UM2.meta_key = 'last_name'";
          $user_query->query_from .= " JOIN {$wpdb->usermeta} as UM3 ON UM3.user_id = {$wpdb->users}.ID AND UM3.meta_key = 'nickname'";
    
          $user_query->query_where = 'WHERE 1=1' . $user_query->get_search_sql( $search, array( 'user_login', 'user_email', 'user_nicename', 'UM1.meta_value', 'UM2.meta_value', 'UM3.meta_value' ), 'both' );
    
        }
      }
    }
    add_action( 'pre_user_query', 'extended_user_search' );
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「名前やニックネームでも検索できる様にユーザー検索をカスタマイズしたい。」には新たに返信することはできません。