web-dev-qa-db-ja.com

WP 検索列とメタクエリを含むユーザークエリ

後から検索できるように、WP User Queryを使用してクエリを作成しようとしています。

  • user_email
  • user_nicename
  • ファーストネーム
  • 苗字

これは私の主張です:

 $ args = array(
 'role' => 'author'、
 'number' => $ limit、
 'offset' => $ offset、 
 'order' => $ order_sort、
 'orderby' => $ order_by、
 'search' => '*'。esc_attr($ search_str)。 '*'、 
 'meta_query' => array(
 'relation' => 'AND'、
 array(
 'key' => 'reg_complete'、[.____ 。 '' value '=> 1、
' compare '=>' = '、
)、
配列(
' relation '=>' OR ') 、
 array(
 'key' => 'first_name'、
 'value' => $ search_str、
 'compare' => 'LIKE' 
)、
 array(
 'key' => 'last_name'、
 'value' => $ search_str、
 'compare' => 'LIKE' 
)
 ____。)、
)
); 

名/姓を検索しても正常に動作するが... nicenames/emailと一致しなかった

それを修正する方法がありますか?

edit:argsからsearch_columnsを削除し、このフィルタを追加しました:

 add_filter( 'user_search_columns'、 'my_user_search_columns'、10、3); 
 
関数my_user_search_columns($ search_columns、$ search、$ this){
 $ search_columns [] = 'user_email'; 
 $ search_columns [] = 'user_nicename'; 
 
 return $ search_columns; 
} 

変更前と同じ結果

4
Mathias

検索対象の列を追加するには、user_search_columnsフィルタを使用する必要があります。

User_search_columnsフィルターは、ユーザー情報の検索を実行するときにデータベース内のどのユーザーフィールドを使用するかを決定するために使用されます。

https://codex.wordpress.org/Plugin_API/Filter_Reference/user_search_columns

1
James Barrett