استعلام عن الاسم الكامل: الاسم الأول AND الاسم الأخير
في عالم اليوم، يعد الحصول على المعلومات الدقيقة حول الأفراد أمرًا بالغ الأهمية، خاصة في مجالات مثل الأعمال والشبكات الاجتماعية. قد تحتاج أحيانًا إلى البحث عن الأشخاص بناءً على أسمائهم الكاملة، وليس مجرد أسمائهم الأولى أو الأخيرة. لذا، نرى الكثير من المستخدمين يبحثون عن حلول فعالة للعثور على الأفراد باستخدام اسمهم الأول واسم العائلة في آن واحد. في هذا المقال، سنتناول كيفية تحسين عمليات البحث في قاعدة بيانات مستخدمي ووردبريس باستخدام كود مخصص يتيح لك تنفيذ هذا النوع من البحث.
أهمية البحث باستخدام الاسم الكامل
تعتبر عمليات البحث المتقنة أمرًا ضروريًا لتحقيق تجربة مستخدم أفضل. في بعض الأحيان، قد تحتاج إلى العثور على معلومات معينة عن شخص ما، مثل "جون دو". لكن، عندما تقتصر عملية البحث على الاسم الأول أو الاسم الأخير فقط، فمن المحتمل أن تحصل على نتائج غير دقيقة أو غير ذات صلة. هنا يظهر دور البحث المستند إلى الاسم الكامل، حيث يمكنك تحديد كلا الجزئين بدقة.
طريقة التنفيذ باستخدام كود ووردبريس
إذا كنت تستخدم ووردبريس وتحتاج إلى تمكين البحث باستخدام اسم المستخدم الكامل، فيمكنك إضافة كود بسيط إلى ملفات موقعك. يقوم هذا الكود بتعديل استعلام البحث ليتمكن من العثور على كل من الاسم الأول واسم العائلة.
أولاً، يبدأ الكود بتحليل إدخال المستخدم للبحث، حيث يتحقق من وجود فراغات. إذا كان هناك فراغ، فإن الكود يقوم بتقسيم الاسم إلى جزئين: الاسم الأول واسم العائلة. بعد ذلك، يتم تنفيذ استعلامين على قاعدة البيانات لاستخراج المستخدمين حسب الاسم الأول واسم العائلة.
add_action( 'pre_user_query', function( $uqi ) {
global $wpdb;
$search = "";
if ( isset( $uqi->query_vars['search'] ) )
$search = trim( $uqi->query_vars['search'] );
if ( $search ) {
$search = trim($search, '*');
if (stristr($search, " ")) {
$search_exp = explode(" ", $search);
// استعلام للبحث عن الاسم الأول
$query1 = "SELECT * FROM wp_usermeta
WHERE meta_key = 'first_name'
AND meta_value LIKE '%" . $search_exp[0] . "%'";
$results1 = $wpdb->get_results($query1);
$vorname_ids = array();
foreach ($results1 as $value1) {
$vorname_ids[] = $value1->user_id;
}
// استعلام للبحث عن اسم العائلة
$query2 = "SELECT * FROM wp_usermeta
WHERE meta_key = 'last_name'
AND meta_value LIKE '%" . $search_exp[1] . "%'";
$results2 = $wpdb->get_results($query2);
$nachname_ids = array();
foreach ($results2 as $value2) {
$nachname_ids[] = $value2->user_id;
}
// تقاطع النتائج
$fullname_ids = array_intersect($vorname_ids, $nachname_ids);
$fullname_ids = implode(",", $fullname_ids);
// إعداد استعلام البحث
$search_meta = $wpdb->prepare("
ID IN ('%s')", $fullname_ids);
$uqi->query_where = str_replace(
'WHERE 1=1 AND (',
"WHERE 1=1 AND (" . $search_meta . " OR ",
$uqi->query_where );
}
else {
$the_search = "%" . $search . '%';
// استعلام بحث شامل
$search_meta = $wpdb->prepare("
ID IN ( SELECT user_id FROM {$wpdb->usermeta}
WHERE ( ( meta_key='first_name' OR meta_key='last_name' )
AND {$wpdb->usermeta}.meta_value LIKE '%s' )
)", $the_search);
$uqi->query_where = str_replace(
'WHERE 1=1 AND (',
"WHERE 1=1 AND (" . $search_meta . " OR ",
$uqi->query_where );
}
}
});
نتائج البحث المثالية
من خلال تنفيذ هذا الكود، ستحصل على نتائج دقيقة تسهل عليك العثور على الشخص المرغوب فيه عند البحث عن الاسم الكامل. إذا قام المستخدم بإدخال اسم مثل "جون دو"، فإن النظام سيتمكن من استرجاع المعلومات ذات الصلة بدلاً من استرجاع جميع الأسماء الأولى أو أسماء العائلات المماثلة.
الخلاصة
البحث عن الأسماء الكاملة يعد أداة قوية لتحسين تجربة المستخدم. من خلال استخدام التقنيات المناسبة والكود المخصص في ووردبريس، يمكنك ضمان أن يتمكن الزوار من العثور على المعلومات التي يحتاجونها بسرعة وسهولة. لذلك، إذا كنت ترغب في تحسين نظام البحث الخاص بك، فإن الأداة المذكورة أعلاه توفر لك أساسًا قويًا للبدء بمشروعك. سواء كان ذلك في موقع إلكتروني تجاري أو مدونة شخصية، فإن تطبيق هذه الحلول سيسهم بشكل كبير في تحسين فعالية البحث ودقة النتائج.