質問編集履歴

2 タグを追加しました。

JP_Shiba_Inu

JP_Shiba_Inu score 2

2016/12/25 12:06  投稿

管理画面のユーザー一覧検索で名前、ニックネームを検索できる様にカスタマイズ
はじめまして。初書き込みになります。
現在WordPressを使用し管理画面のプロフィールページ(profile.php)で名前やニックネームを登録しています。
こちらの情報をユーザー一覧(users.php)の右上のsearch-boxに名前やニックネームを入力して「ユーザーを検索」を押しても「お探しのユーザーは見つかりませんでした。」と表示され検索結果が表示されません。
**調査したこと・試したこと**
色々自分なりに調べてみたのですが
<a href="https://blog.gti.jp/post-5956/" target="_blank">こちらの記事</a>が似てると思い新規インストールしたWordPressの利用テーマ(Twenty Fourteenバージョン: 1.9)のfunctions.phpに追記してみたのですが
思った様にできませんでした。
記事に記載されていたコードはこちらになりす。
```
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 wp_usermeta UM1 ON UM1.user_id = {$wpdb->users}.ID AND UM1.meta_key = 'first_name'";
$user_query->query_from .= " JOIN wp_usermeta UM2 ON UM2.user_id = {$wpdb->users}.ID AND UM2.meta_key = 'last_name'";
$user_query->query_from .= " JOIN wp_usermeta UM3 ON UM3.user_id = {$wpdb->users}.ID AND UM3.meta_key = 'user_title'";
$user_query->query_from .= " JOIN wp_usermeta UM4 ON UM4.user_id = {$wpdb->users}.ID AND UM4.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', 'UM4.meta_value' ), 'both' );
}
}
}
add_action( 'pre_user_query', 'extended_user_search' );
```
WordPressのユーザー一覧検索はデフォルトでユーザー名やメールアドレスでは検索できる様です。
ユーザー一覧の検索で名前(姓、名)やニックネームでも検索できる方法がありましたら是非教えて下さい。
システム情報は以下になります。
WP Version: 4.7
PHP Version: 5.6.29
Database Version: 5.1.73
何卒、回答宜しくお願い致します。
  • WordPress

    9151 questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • PHP

    24602 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • jQuery

    8374 questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

1 調査したことや試したことの部分を特定しました。

JP_Shiba_Inu

JP_Shiba_Inu score 2

2016/12/25 12:05  投稿

管理画面のユーザー一覧検索で名前、ニックネームを検索できる様にカスタマイズ
はじめまして。初書き込みになります。
現在WordPressを使用し管理画面のプロフィールページ(profile.php)で名前やニックネームを登録しています。
こちらの情報をユーザー一覧(users.php)の右上のsearch-boxに名前やニックネームを入力して「ユーザーを検索」を押しても「お探しのユーザーは見つかりませんでした。」と表示され検索結果が表示されません。
**調査したこと・試したこと**  
色々自分なりに調べてみたのですが
<a href="https://blog.gti.jp/post-5956/" target="_blank">こちらの記事</a>が似てると思い新規インストールしたWordPressの利用テーマ(Twenty Fourteenバージョン: 1.9)のfunctions.phpに追記してみたのですが
思った様にできませんでした。
記事に記載されていたコードはこちらになりす。
```
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 wp_usermeta UM1 ON UM1.user_id = {$wpdb->users}.ID AND UM1.meta_key = 'first_name'";
     $user_query->query_from .= " JOIN wp_usermeta UM2 ON UM2.user_id = {$wpdb->users}.ID AND UM2.meta_key = 'last_name'";
     $user_query->query_from .= " JOIN wp_usermeta UM3 ON UM3.user_id = {$wpdb->users}.ID AND UM3.meta_key = 'user_title'";
     $user_query->query_from .= " JOIN wp_usermeta UM4 ON UM4.user_id = {$wpdb->users}.ID AND UM4.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', 'UM4.meta_value' ), 'both' );
   }
 }
}
add_action( 'pre_user_query', 'extended_user_search' );
```
WordPressのユーザー一覧検索はデフォルトでユーザー名やメールアドレスでは検索できる様です。
ユーザー一覧の検索で名前(姓、名)やニックネームでも検索できる方法がありましたら是非教えて下さい。
システム情報は以下になります。
WP Version: 4.7
PHP Version: 5.6.29
Database Version: 5.1.73
何卒、回答宜しくお願い致します。
  • WordPress

    9151 questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る