मुख्य तालिका खोज रहा है
बस 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अगर searcharg संख्यात्मक है
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();