الدليل الشامل لنشر ووردبريس وتصفية الصفحات

نشرت: 2017-07-13

إذا سبق لك التسوق على Amazon ، فمن المحتمل أنك تقدر بالفعل قوة المرشحات للتنقل لأسفل في مجموعة كبيرة من المحتوى وتحديد ما تبحث عنه بالضبط. عند البحث عن منتج على أمازون ، يوجد دائمًا شريط جانبي مليء بالفلاتر التي تساعدك على تحسين البحث ، وإرجاع النتائج التي تلبي متطلباتك الأكثر أهمية. فلاتر مثل تصنيف العملاء والعلامة التجارية وما إذا كان المنتج للرجال أو النساء والحالة (جديدة / مستعملة) وغير ذلك الكثير.

نظرًا لمدى فائدة فلاتر المحتوى ، فربما لا يكون من المفاجئ أن تكون القدرة على إنشائها لمحتوى WordPress الخاص بك مدمجة في WordPress Core. وبقليل من المعرفة ، يمكنك جلب هذه القوة إلى زوار موقعك - ​​مما يسمح لهم بالتنقل في المحتوى الخاص بك بشكل أكثر رشاقة من أي وقت مضى.

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

هيا بنا نبدأ!

لماذا WordPress Post و Page Filter؟

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

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

ماذا يفعل البرنامج المساعد بحث وتصفية؟

يعد المكون الإضافي Search & Filter أداة إضافية سهلة الاستخدام تنقل مربع بحث WordPress الافتراضي إلى المستوى التالي. يسمح للزائرين بالبحث عن مصطلح معين وتصفية النتائج بناءً على الفئات ، والعلامات ، وأنواع المنشورات المخصصة ، والتصنيفات المخصصة ، والنطاق الزمني ، أو حتى مجموعة منهم جميعًا للحصول على بحث أكثر دقة ونتائج أكثر دقة.

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

دعنا نلقي نظرة على بعض الأمثلة.

كيفية تصفية المشاركات مع البحث والتصفية

أبسط استخدام للمكوِّن الإضافي هو الرمز المختصر الذي يسمح للزوار بالبحث في جميع الفئات والعلامات الخاصة بك. يبدو الرمز المختصر الافتراضي كما يلي:

[searchandfilter fields="search,category,post_tag"] 

يمكنك إدراجه في أي منشور أو صفحة أو عنصر واجهة مستخدم نصي وسيعرض خيارات التصفية مع حقول البحث والفئة والعلامات في الواجهة الأمامية:

إذا كنت تريد السماح للزائرين بتحديد أكثر من فئة أو علامة واحدة ، فيمكنك القيام بذلك بسهولة عن طريق تعديل الرمز المختصر لتضمين مربعات الاختيار بدلاً من القائمة المنسدلة وتسمية كل حقل:

[searchandfilter headings="Select categories:" types="checkbox" fields="category"]

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

<?php echo do_shortcode('[searchandfilter fields="search,category,post_tag"]'); ?>

في حالتنا ، قمنا بإضافته إلى قالب الفهرس الرئيسي لموضوع Twenty Seventeen.

كيفية تصفية التصنيفات المخصصة؟

توضح الأمثلة أعلاه استخدامًا أساسيًا جدًا للمكوِّن الإضافي. لكن البرنامج الإضافي Search & Filter يقبل المعلمات الأخرى أيضًا. يمكنك استخدام رمز قصير يسمح للزائرين بتصفية نتائج البحث فقط من أجل التصنيفات المخصصة.

لنفترض أن لديك متجرًا على موقعك مع WooCommerce. إذا كنت تريد تضمين فئات المنتجات في نتائج البحث ، فكل ما عليك فعله هو إضافة الرمز القصير التالي:

[searchandfilter taxonomies="search,category,post_tag,product_cat" headings=",Categories,Tags,Product Categories"]

في هذا المثال ، أضفت أيضًا عناوين قبل كل حقل حتى يتمكن الزائرون من قضاء وقت أسهل في التمييز بين الحقول:

إذا كنت ترغب في عرض هذا على صفحة في المظهر الخاص بك ، فكل ما عليك فعله هو لصق السطر التالي من التعليمات البرمجية في قالب الصفحة المناسب ضمن المظهر> السمات> المحرر :

<?php echo do_shortcode('[searchandfilter taxonomies="search,category,post_tag,product_cat" headings=",Categories,Tags,Product Categories"]'); ?>

كيفية تصفية المنشورات حسب النطاق الزمني؟

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

<?php echo do_shortcode('[searchandfilter fields="search,post_date" types=",daterange" headings=",Post Date"]'); ?>

كيفية تصفية تنسيقات المنشورات والصفحات؟

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

[searchandfilter fields="search,post_format" types=",select" headings=",Post Format" submit_label="Filter"]

إذا كنت تريد أن يقوم الزوار بتصفية الصفحات أو المنشورات ، فكل ما تحتاجه هو رمز قصير يقبل أنواع المنشورات كمعلمات:

[searchandfilter fields="search,post_types" post_types="post,page" headings=",Post Types"]

بصرف النظر عن الأمثلة أعلاه ، يتيح لك المكون الإضافي أن تكون أكثر تحديدًا من خلال تضمين معلمات لترتيب النتائج بترتيب هرمي ، لإظهار عدد المشاركات في فئات محددة ، وإضافة فئات ، ومؤلفي التصفية ، وغير ذلك الكثير.

كيفية تصفية المنشورات يدويًا

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

<form action="<?php echo site_url() ?>/wp-admin/admin-ajax.php" method="POST" id="filter">
    <?php
        if( $terms = get_terms( 'category', 'orderby=name' ) ) : 
            echo '<select name="categoryfilter"><option>Select category...</option>';
            foreach ( $terms as $term ) :
                echo '<option value="' . $term->term_id . '">' . $term->name . '</option>'; 
            endforeach;
            echo '</select>';
        endif;
    ?>
    <label>
        <input type="radio" name="date" value="ASC" /> Date: Ascending
    </label>
    <label>
        <input type="radio" name="date" value="DESC" selected="selected" /> Date: Descending
    </label>
    <button>Apply filters</button>
    <input type="hidden" name="action" value="customfilter">
</form>
<div id="response"></div>

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

تمت إضافة النموذج بالكامل إلى قالب sidebar.php في المظهر> السمات> المحرر .

الخطوة التالية هي استخدام jQuery بحيث يمكن عرض النتائج دون الحاجة إلى إعادة تحميل الصفحة:

jQuery(function($){
    $('#filter').submit(function(){
        var filter = $('#filter');
        $.ajax({
            url:filter.attr('action'),
            data:filter.serialize(), // form data
            type:filter.attr('method'), // POST
            beforeSend:function(xhr){
                filter.find('button').text('Applying Filters...');          },
            success:function(data){
                filter.find('button').text('Apply filters');                $('#response').html(data); 
            }
        });
        return false;
    });
});

آخر جزء من الكود هو إضافة دالة إلى ملف function.php الذي سيعالج النتيجة بناءً على المرشحات المحددة. سيبحث في الفئة المحددة وطالما أن هناك منشورات ، فسيتم عرضها حسب تاريخ نشرها بترتيب تصاعدي أو تنازلي. إذا لم يتم العثور على أي مشاركات في هذه الفئة ، فستظهر الرسالة التي لم يتم العثور على أي مشاركات فيها:

 
function my_filters(){
    $args = array(
        'orderby' => 'date', 
        'order' => $_POST['date'] 
    );
 
        if( isset( $_POST['categoryfilter'] ) )
        $args['tax_query'] = array(
            array(
                'taxonomy' => 'category',
                'field' => 'id',
                'terms' => $_POST['categoryfilter']
            )
        );
  
    $query = new WP_Query( $args );
 
    if( $query->have_posts() ) :
        while( $query->have_posts() ): $query->the_post();
            echo '<h2>' . $query->post->post_title . '</h2>';
        endwhile;
        wp_reset_postdata();
    else :
        echo 'No posts found';
    endif;
 
    die();
}
 
 
add_action('wp_ajax_customfilter', 'my_filters'); 
add_action('wp_ajax_nopriv_customfilter', 'my_filters');

تظهر النتيجة النهائية مثل هذه في الواجهة الأمامية:

لماذا يجب أن تدع القراء يقومون بتصفية المنشورات والصفحات في WordPress

تعتبر الطرق المذكورة أعلاه طريقة رائعة للسماح للمستخدمين بتصفية مشاركاتك. ولكن لماذا تريد أن تفعل ذلك؟

يتيح لك WordPress بالفعل تنظيم مشاركاتك باستخدام الفئات والعلامات ، ولكنه يسمح فقط للمستخدمين بمشاهدة فئة أو علامة واحدة في كل مرة. علاوة على ذلك ، إذا كنت تستخدم أنواع منشورات مخصصة تستخدم فئاتها الخاصة ، فلن تكون هذه الفئات مرئية مع تلك المستخدمة في المنشورات العادية.

يعد المكون الإضافي Search & Filter مفيدًا بشكل خاص ليس فقط عندما يكون لديك الكثير من الفئات والعلامات المختلفة المقترنة بمحتوى العام ، كما أنه مفيد أيضًا إذا قمت بإضافة أنواع منشورات مخصصة مثل المحفظة والمعرض والشهادة والمزيد.

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

تغليف

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

نود أن نسمع أيًا من تجربتك مع البحث والتصفية في WordPress. اسمحوا لنا أن نعرف في التعليقات أدناه.

الصورة المصغرة للمادة من Graphicglobe / shutterstock.com