मुख्य तालिका खोज रहा है
बस WP_User_Query
खोज तर्क के साथ उपयोग करें।
इसलिए यदि आप तालिका user_email
से अपने या समान कॉलम वाले किसी उपयोगकर्ता के लिए उदाहरण खोजना चाहते हैं {$wpdb->prefix}users
, तो आप निम्न कार्य कर सकते हैं:
$users = new WP_User_Query( array(
'search' => '*'.esc_attr( $your_search_string ).'*',
'search_columns' => array(
'user_login',
'user_nicename',
'user_email',
'user_url',
),
) );
$users_found = $users->get_results();
ध्यान रखें कि *
एक वाइल्डकार्ड है। इसलिए उदाहरण के user_email
लिए किसी एकल डोमेन पर रोकना आपको निम्न खोज स्ट्रिंग देगा *@example.com
:।
search
स्ट्रिंग कुछ "जादू" सुविधाओं की है: search_columns
करने के लिए चूक ...
user_email
अगर arg @
में मौजूद है search
।
user_login
और ID
अगर search
arg संख्यात्मक है
user_url
अगर search
स्ट्रिंग शामिल है http://
याhttps://
- या ...
user_login
और user_nicename
यदि एक स्ट्रिंग मौजूद है।
यदि कोई search_columns
तर्क निर्दिष्ट नहीं किया गया था, तो वे सभी चूक केवल निर्धारित हैं ।
मेटा तालिका खोज रहा है
यदि आप उदाहरण के लिए खोज करना चाहते हैं first_name
या last_name
, तो आपको ऐसा करना होगा meta_query
क्योंकि वे मुख्य तालिका का हिस्सा नहीं हैं:
$search_string = esc_attr( trim( get_query_var('s') ) );
$users = new WP_User_Query( array(
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'first_name',
'value' => $search_string,
'compare' => 'LIKE'
),
array(
'key' => 'last_name',
'value' => $search_string,
'compare' => 'LIKE'
)
)
) );
$users_found = $users->get_results();
सुनिश्चित करें कि आप सही खोज स्ट्रिंग प्राप्त करते हैं। आम तौर पर यह होगा get_query_var('s');
, लेकिन यह हो सकता है - आपके फॉर्म के आधार पर और name/id
कुछ अलग हो सकता है जिसे आप $_GET['user_search']
उदाहरण के लिए उपयोग करना चाहते हैं । इसे ठीक से एस्कैप करना सुनिश्चित करें और स्ट्रिंग की शुरुआत और अंत से अवांछित सफेद स्थान को हटा दें।
ध्यान रखें कि यह एक है array( array() )
के रूप में वहाँ relation
कुंजी। यदि आप बस एक ही कुंजी की खोज करना चाहते हैं, तो बस निम्नलिखित के साथ जाना आसान हो सकता है:
$search_string = esc_attr( trim( get_query_var('s') ) );
$users = new WP_User_Query( array(
'meta_key' => 'first_name',
'meta_value' => $search_string,
'meta_compare' => 'LIKE',
) );
$users_found = $users->get_results();
अंतिम प्रश्न
परिणाम निम्नलिखित के करीब लग सकता है :
$search_string = esc_attr( trim( get_query_var('s') ) );
$users = new WP_User_Query( array(
'search' => "*{$search_string}*",
'search_columns' => array(
'user_login',
'user_nicename',
'user_email',
'user_url',
),
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'first_name',
'value' => $search_string,
'compare' => 'LIKE'
),
array(
'key' => 'last_name',
'value' => $search_string,
'compare' => 'LIKE'
)
)
) );
$users_found = $users->get_results();