Admin領域に表示されているユーザーの上部にある検索フォーム(wp-admin/users.php)は制限されており、bio、インスタントメッセンジャーハンドルなどのユーザーメタフィールドのすべてを検索するわけではありません。これを追加できるプラグインを見つけることができました。
誰かが_usermeta DB内のすべての日付についてこの検索を拡張することができる、私が作成できるプラグインまたは関数について知っていますか - 理想的には、プラグインまたは関数によって作成された追加フィールドさえも。
私はMikeSchinkelのアプローチと上記の徹底的な説明に本当に感謝しています。これはとても役に立ちました。 pre_user_searchが非推奨になり、3.2では実際には機能しないため、私はそれを機能させることができませんでした。 pre_user_queryでそれを切り替えようとしましたが、それでもうまくいきませんでした。問題は、$ user_search-> search_termが機能しなくなったため、$ _GET ['s']を使用したことです。私はいくらかハッキングして、3.2でこれを機能させることができました。設定する必要があるのは、検索可能なメタデータの配列だけです。
//Searching Meta Data in Admin
add_action('pre_user_query','yoursite_pre_user_search');
function yoursite_pre_user_search($user_search) {
global $wpdb;
if (!isset($_GET['s'])) return;
//Enter Your Meta Fields To Query
$search_array = array("customer_id", "postal_code", "churchorganization_name", "first_name", "last_name");
$user_search->query_from .= " INNER JOIN {$wpdb->usermeta} ON {$wpdb->users}.ID={$wpdb->usermeta}.user_id AND (";
for($i=0;$i<count($search_array);$i++) {
if ($i > 0) $user_search->query_from .= " OR ";
$user_search->query_from .= "{$wpdb->usermeta}.meta_key='" . $search_array[$i] . "'";
}
$user_search->query_from .= ")";
$custom_where = $wpdb->prepare("{$wpdb->usermeta}.meta_value LIKE '%s'", "%" . $_GET['s'] . "%");
$user_search->query_where = str_replace('WHERE 1=1 AND (', "WHERE 1=1 AND ({$custom_where} OR ",$user_search->query_where);
}
これが誰かに役立つことを願っています。
これがワードプレスの最新版の解決策です。
add_action( 'pre_user_query', 'yoursite_pre_user_search' );
function yoursite_pre_user_search( $query ) {
$query->query_where .= "YOUR QUERY '" . str_replace("*", "%", $query->query_vars[ 'search' ] ) . "')";
}
参考までに、このトピックに関する検索(ユーザーパネル検索クエリの調整方法)とこの優れたページの検索のために、WP_User_Searchは3.1以降WP_User_Queryによって非推奨になりました。 http://codex.wordpress.org/Class_Reference/WP_User_Query 。