إنشاء صفحة البحث في الووردبريس


Ali Alrohia

تحدثنا في المقال السابق عن صفحة إعدادات المناقشة على ووردبريس، وفي هذا المقال سنتحدث بالتفصيل عن كيفية إنشاء صفحة بحث، من أجل توفير تجربة استخدام أفضل للزوار ومستخدمي الموقع الإلكتروني الخاص بك ولتسهيل تنقلاتهم داخل الموقع أكثر.

صفحة البحث هي صفحة ووردبريس تستخدم قالب صفحة مخصص وذلك لإتاحة ميزة البحث للمستخدمين ضمن موقعك الإلكتروني.

أشياء عليك معرفتها

تمتلك قوالب ووردبريس المختلفة ملفات قالب (ملفات القالب هنا يُقصد بها ملفات تتضمن شيفرة مرتبطة بنوع صفحة معين مثل صفحة البحث أو صفحة عرض المقالات وهي تُعطي للصفحة هيكليتها ووظيفتها) مختلفة فالبعض يستخدم ملف قالب search.php وهي ليست صفحة بحث بل قالب لعرض نتائج البحث. يوجد أيضا ملف قالب يُدعى searchform.php والذي يُضمن عادة في العمود الجانبي للعديد من القوالب كي يولد مربع بحث. قد لا يمتلك القالب الذي تستخدمه مثل هذا الملف، لذلك تستطيع نسخه بسهولة من القالب الافتراضي لووردبريس.

سوف تحتاج إلى قالب للصفحة لإنشاء صفحة بحث مخصصة لك، يتضمن هذا القالب مربع البحث والمعلومات التي تريد للمستخدمين أن يروها قبل بدء عملية البحث ضمن موقعك.

تحقق من ملفات قالبك على ووردبريس إن كان يتضمن ملف قالب page.php حيث أن القالب الافتراضي لووردبريس يتضمن هذا الملف ولكن ليس بالضرورة أن تجده في قوالب أخرى. في حال وجدت الملف، اتبع هذه التعليمات أما إن لم تجده فإليك المعلومات اللازمة لك لإنشاء صفحة البحث الخاصة بك.

إنشاء قالب صفحة بحث

  1. افتح ملف page.php باستخدام محرر نصوص واحفظه باسم searchpage.php. تستطيع إنشاء ملف page.php في حال لم تجده بالاعتماد على قالب الملف index.php للقالب الذي تستخدمه. ملاحظة: اسم الملف search.php محجوز بشكل مًسبق كاسم خاص لقالب ملف البحث لذلك عليك تجنب استخدامه بينما الاسم المًستخدم في الخطوة الأولى searchpage.php غير محجوز ويُسهل عملية التعرف على عمل الملف عند النظر إليه ضمن مجموعة كبيرة من الملفات.
  2. اتبع الخطوات التالية بعد حفظ الملف السابق:
  • احذف الحلقة (عمليا كل ما هو موجود ضمن وسم div الخاص بالمحتوى) مع الإبقاء على وسوم div دون أي تعديل.
  • أضف الترويسة مثل "Search Posts" أو أي بديل مماثل. تستطيع استخدام أصناف من ملفات CSS الخاصة بك أو إنشاء أصناف جديدة.
  • انسخ ما يلي ضمن محتوى وسم div أو أي وسم div آخر يتضمن المحتوى الخاص بصفحتك:
<?php get_search_form(); ?> 
  • توجه لبداية ملف searchpage.php وأضف ما يلي قبل أي شيفرة لإعطاء ترويسة لصفحة البحث الخاصة بك. سوف يتعرف عليها ووردبريس ضمن صفحة الإدارة:
 <?php
 /**
 * Template Name: Search Page
 */
 ?>
  1. احفظ الملف.
  2. ارفع الملف إلى مسار القالب (في حال قمت بتغييرات على ملف style.css عليك برفعه أيضا).

يجب أن يظهر محتوى ملف search.php كالتالي في حال استعنت بملف page.php من قالب Twenty Seventeen لإنشائه:

 <?php
 /**
 * Template Name: Search Page
 */

 ?>
 <?php get_header(); ?>

 <div class="wrap">
    <div id="primary" class="content-area">
        <main id="main" class="site-main" role="main">
        <?php get_search_form(); ?>
        </main><!-- #main -->
    </div><!-- #primary -->
 </div><!-- .wrap -->

 <?php get_footer();

إنشاء صفحة بحث

تستطيع الآن إنشاء صفحة البحث بالاعتماد على قالب الصفحة.

  1. توجه ضمن صفحة المدير إلى "صفحات" ثم "أضف جديدًا".
  2. أدخل "بحث" ضمن حقل العنوان (هذا هو عنوان صفحة البحث الخاصة بك) لا تكتب أي شي ضمن محتوى الصفحة.
  3. ابحث عن "خصائص الصفحة" على الجانب الأيسر ضمن نفس الصفحة.
  4. اضغط على القائمة المنسدلة في "القالب" واختر Search Page.
  5. اضغط على زر "نشر".

سوف يظهر مربع بحث بسيط مثل التالي

custom_search_page_1.jpg

الربط مع صفحة البحث الخاصة بك

تستطيع الآن إنشاء رابط لصفحة البحث المخصصة لديك بعدة طرق.

باستخدام معرف الصفحة Page ID

تستطيع الربط مع صفحة البحث الجديدة من خلال استخدام رقم معرف الصفحة Page ID سواء كنت تستخدم الروابط الدائمة أو لا. أدخل السطر التالي ضمن أي منشور أو صفحة أو ملف قالب.

 <a href="index.php?page_id=17" title="Search Page">Search Page</a>

أو تستطيع استخدام السطر التالي ضمن ملف القالب

 <a href="<?php echo home_url(); ?>/?page_id=17">Search Page</a>

باستخدام الاسم اللطيف slug

يتم اختيار رابط الصفحة ضمن تحرير الصفحة وهو عادة اسم الصفحة في حال كنت تستخدم الروابط الدائمة، كما تستطيع تغييره بشكل يدوي. مثال على رابط الصفحة قد يكون كالتالي:

 <a href="/wordpress/search-page/" title="Search Page">Search Page</a>

لأي منشور أو صفحة أو قالب عندما يكون الاسم اللطيف هو "search-page" أو يمكنك إضافة السطر التالي لملف القالب

 <a href="<?php echo home_url(); ?>/wordpress/search-page/" title="Search Page">Search Page</a>

باستخدام ()wp_listpages

إن كنت تستخدم وسم القالب ()wp_listpages سوف يتم توليد اسم الصفحة بشكل آلي ضمن قائمة الصفحات الخاصة بك.

تخصيص صفحة البحث الخاصة بك

الآن وبعد إنشاء صفحة البحث الخاصة بك، تستطيع تخصيص طريقة عرضها وللبدء بذلك افتح ملف searchpage.php ضمن محرر النصوص وأضف ما تريد من تعديلات. تستطيع إضافة نص يساعد الزوار على البحث ضمن موقعك وذلك ضمن ملف searchpage.php قبل الدالة get_search_form()‎.

 <p>My Site features articles about 
 <a title="WordPress Articles" href="/category/wordpress/">WordPress</a>, 
 <a title="Web Design Articles" href="/category/web-design/">web page design</a>, 
 <a title="Development Articles" href="/category/website-development/">website development</a> 
and <a title="CSS Articles" href="/category/css/">CSS</a>.</p>
 <p>To search my website, please use the form below.</p>

ربما تريد إضافة قائمة بالكلمات المفتاحية أو معلومات أخرى أو صور أو تفاصيل تجعل من صفحة البحث الخاصة بك مميزة.

حفظ نتائح صفحة البحث والتصفيح

قد تتوقف صفحة نتائج البحث والتصفيح Pagination (التصفيح هو عرض أقسام صفحة أو نتائج البحث مُقسمة على عدة صفحات) نتيجة خطأ فادح عند تطبيق تعديلات على شيفرة الصفحة. لتفادي ذلك يجب على المطور أن يُضيف الشيفرة التالية لبداية الصفحة وذلك للتأكد من حفظ الاستعلام Query الرئيسي لووردبريس.

يمكنك استخدام متغيرات إضافية للمصفوفة search_query$ للتعديل على الاستعلام. نفِّذ search_query$ من خلال كائن جديد wp_query$. يمكن إيجاد مزيد من المعلومات عن الغرض WP_Query.

 <br>
<?php <br> global $query_string;</p> <p>$query_args = explode("&", $query_string);<br> $search_query = array();</p> <p>if( strlen($query_string) > 0 ) {<br> foreach($query_args as $key => $string) {<br> $query_split = explode("=", $string);<br> $search_query[$query_split[0]] = urldecode($query_split[1]);<br> } // foreach<br> } //if</p> <p>$search = new WP_Query($search_query);<br> ?> <br>

يمكنك التعرف على المتغيرات الإضافية التي يمكنك استخدامها لتخصيص الطلب في WP_Query.

عرض النتائج الكاملة

لعرض نتائج البحث كاملة في صفحة البحث search.php يجب استعادة كامل المنشورات التي عُثر عليها باستخدام الكائن wp_query.

 <?php
 global $wp_query;
 $total_results = $wp_query->found_posts;
 ?>

يمكنك التعرف على المتغيرات الإضافية التي يمكنك استخدامها لتخصيص الطلب في WP_Query.

ترجمة -وبتصرف- للمقال Creating a Search Page من موقع ووردبريس.





تفاعل الأعضاء


لا توجد أيّة تعليقات بعد



يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن