web-dev-qa-db-ja.com

WP_User_Queryを使用してユーザーメタを検索する

WP_User_Queryのドキュメントによると、利用可能な検索パラメータがあります。それはこのようになります:

$users = new WP_User_Query(array(
    'search' => 'This is my search'
));

データベース内で "search_columns"パラメータを使用して検索対象となる列を設定することもできます。

$users = new WP_User_Query(array(
    'search' => 'This is my search',
    'search_columns' => array( 'user_login', 'user_email' )
));

さて、ドキュメントはあなたがuser_search_columnsフィルタを使って検索のために利用可能な異なる列を修正できると述べています。そのフィルタはこのページで定義されています。

フィルタリファレンス/ユーザー検索列

私はusermetaに基づいた検索については何も見ません。検索欄にusermetaを追加したい。誰もがこれを行う方法を知っていますか?

これを試して:

$yoursearchquery = 'This is my search';
$users = new WP_User_Query(array(
    'search' => $yoursearchquery,
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'key' => 'shoe_size',
            'value' => $yoursearchquery,
            'compare' => 'LIKE'
        ),
        array(
            'key' => 'shoe_color',
            'value' => $search_operation,
            'compare' => 'LIKE'
        ),
        array(
            'key' => 'shoe_maker',
            'value' => $yoursearchquery,
            'compare' => '='
        )
    )
)); 
1
Nathan