Ultimul ghid pentru postarea și filtrarea paginilor WordPress

Publicat: 2017-07-13

Dacă ați cumpărat vreodată pe Amazon, este probabil să apreciați deja puterea filtrelor de a intra într-un corp mare de conținut și de a localiza exact ceea ce căutați. Când căutați un produs pe Amazon, există întotdeauna o bară laterală plină de filtre care vă ajută să vă rafinați căutarea, returnând doar rezultatele care îndeplinesc cele mai importante cerințe. Filtre precum evaluarea clienților, marca, indiferent dacă produsul este pentru bărbați sau femei, starea (nou / folosit) și multe altele.

Având în vedere cât de utile sunt filtrele de conținut, probabil că nu ar trebui să fie o surpriză faptul că capacitatea de a le crea pentru conținutul dvs. WordPress este încorporată chiar în WordPress Core. Și cu un pic de cunoștințe, puteți aduce această putere vizitatorilor site-ului dvs. - permițându-le să navigheze în conținutul dvs. mai abil decât oricând.

În această postare, vă vom prezenta prin procesul de creare a opțiunilor de filtrare a conținutului pentru utilizatorii dvs. cu un plugin.

Să începem!

De ce filtrarea posturilor și a paginilor WordPress?

WordPress este incredibil de flexibil. Nucleul vă permite să aveți un control complet asupra a tot ce este pe site-ul dvs. Filtrarea posturilor și a paginilor este una dintre cele mai puternice caracteristici ale WordPress. Există mai multe funcții încorporate pentru postări, pagini și conținut personalizat. În plus, există multe modalități de a selecta, grupa și filtra articolele stocate în baza de date. Puteți crea liste sortabile de rezultate ale căutării în funcție de șablonul de pagină, tipurile de postări, termenii taxonomiei, ierarhia șablonelor, paginile de produs sau orice altceva doriți.

În mod implicit, WordPress vine cu o funcție de căutare încorporată. Cu toate acestea, funcția de căutare lasă mult de dorit și nu ajută atunci când cititorii dvs. doresc să filtreze rezultatele într-un mod special. Acolo intră în joc ajutorul unui plugin terță parte.

Ce face pluginul Căutare și filtrare?

Pluginul Search & Filter este un plugin ușor de utilizat care duce caseta de căutare implicită WordPress la nivelul următor. Permite vizitatorilor dvs. să caute un anumit termen și să filtreze rezultatele în funcție de categorii, etichete, tipuri de posturi personalizate, taxonomii personalizate, interval de date sau chiar o combinație a tuturor acestora pentru o căutare mai rafinată și rezultate mai precise.

Utilizarea pluginului este foarte simplă. După ce instalați și activați pluginul, veți fi direcționat la pagina de setări cu o explicație detaliată a modului de utilizare. Pe scurt, puteți utiliza un shortcode oriunde în postările, paginile sau orice bare laterale widgetizate. Alternativ, dacă vă simțiți curajoși și nu vă deranjează să vă murdăriți mâinile cu puțin cod, puteți lipi o singură linie de cod în fișierul tematic.

Să aruncăm o privire la câteva exemple.

Cum se filtrează postările cu căutare și filtrare

Cea mai simplă utilizare a pluginului este shortcode-ul care permite vizitatorilor să caute în toate categoriile și etichetele dvs. Codul scurt implicit arată astfel:

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

Puteți să-l inserați în orice postare, pagină sau un widget text și va afișa opțiunile de filtrare cu câmpurile de căutare, categorie și etichete din partea frontală:

Dacă doriți să permiteți vizitatorilor să selecteze mai multe categorii sau etichete, puteți face acest lucru cu ușurință modificând codul scurt pentru a include casete de selectare în loc de o listă verticală și etichetând fiecare câmp:

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

Exemplele de mai sus arată cum să utilizați pluginul din bara laterală. Cu toate acestea, îl puteți utiliza și în fișierul tematic pentru a-l afișa pe orice pagină. În exemplul de mai jos, formularul se afișează pe pagina blogului. Tot ce trebuie să faceți este să lipiți următoarea linie de cod:

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

În cazul nostru, l-am adăugat la șablonul principal de index al temei Twenty Seventeen.

Cum se filtrează taxonomiile personalizate?

Exemplele de mai sus arată o utilizare foarte simplă a pluginului. Dar, pluginul Search & Filter acceptă și alți parametri. Puteți utiliza un shortcode care permite vizitatorilor să filtreze rezultatele căutării numai pentru taxonomii personalizate.

Să presupunem că aveți un magazin pe site-ul dvs. cu WooCommerce. Dacă doriți să includeți categorii de produse în rezultatele căutării, tot ce trebuie să faceți este să adăugați următorul cod scurt:

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

În acest exemplu, am adăugat și titluri înaintea fiecărui câmp, astfel încât vizitatorii să poată distinge mai ușor între câmpuri:

Dacă doriți să afișați acest lucru pe o pagină din tema dvs., tot ce trebuie să faceți este să lipiți următoarea linie de cod în șablonul de pagină corespunzător din Aspect> Teme> Editor :

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

Cum se filtrează postările după intervalul de date?

O altă utilizare a cazurilor este dacă doriți să permiteți vizitatorilor dvs. să caute postări dintr-o anumită categorie într-un anumit interval de date. În acest caz, pur și simplu lipiți următoarea linie de cod în arhiva dvs.:

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

Cum se filtrează formatele și paginile postărilor?

În ultimul exemplu, să aruncăm o privire la filtrarea formatelor de post și a paginilor. Dacă publicați postări video sau audio, acest cod scurt va permite vizitatorilor să găsească numai postări care aparțin formatului de postare pe care îl specificați:

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

Dacă doriți ca vizitatorii să filtreze pagini sau postări, tot ce aveți nevoie este un shortcode care acceptă tipurile de postări ca parametri:

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

În afară de exemplele de mai sus, pluginul vă permite să obțineți și mai multe informații prin includerea parametrilor pentru ordonarea rezultatelor în ordine ierarhică, pentru a afișa numărul de postări din categoriile specificate, pentru a adăuga clase, pentru a filtra autorii și multe altele.

Cum se filtrează postările manual

Ca și în cazul oricărui lucru legat de WordPress, există o modalitate de a face acest lucru fără utilizarea unui plugin. Să presupunem că doriți să creați un formular simplu care permite vizitatorilor să filtreze postările dintr-o anumită categorie.
Mai întâi, trebuie să creați un formular simplu:

<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>

În formularul de mai sus, prima parte permite utilizatorului să selecteze taxonomiile utilizând funcția get_terms . Puteți utiliza acest lucru pentru categorii și etichete implicite, precum și pentru taxonomii personalizate. Următoarea parte adaugă butoanele radio care permit vizitatorilor să afișeze rezultatele în ordine crescătoare sau descendentă. În cele din urmă, ultima parte este butonul pentru formularul care le permite să aplice filtrele selectate.

Întregul formular a fost adăugat la șablonul sidebar.php din Aspect> Teme> Editor .

Următorul pas este să utilizați jQuery, astfel încât rezultatele să poată fi afișate fără a fi nevoie să reîncărcați pagina:

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;
    });
});

Ultimul bit de cod este să adăugați o funcție la fișierul function.php care va procesa rezultatul pe baza filtrelor selectate. Se va uita prin categoria selectată și atâta timp cât există postări, le va afișa până la data la care au fost postate în ordine crescătoare sau descendentă. Dacă nu sunt găsite postări în categorie, acesta va afișa mesajul nu au fost găsite postări:

 
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');

Rezultatul final afișează ca acesta front-end-ul:

De ce ar trebui să lăsați cititorii să filtreze postările și paginile în WordPress

Metodele de mai sus sunt o modalitate excelentă de a permite utilizatorilor să vă filtreze postările. Dar de ce ai vrea să faci asta?

WordPress vă permite deja să vă organizați postările cu categorii și etichete, dar permite utilizatorilor să vizualizeze o singură categorie sau etichetă la un moment dat. Mai mult, dacă utilizați tipuri de postări personalizate care utilizează propriile categorii, aceste categorii nu vor fi vizibile împreună cu cele utilizate pentru postările obișnuite.

Pluginul Căutare și filtrare este util mai ales nu numai atunci când aveți o mulțime de categorii și etichete diferite asociate cu valoarea de conținut a anului, dar este util dacă ați adăugat tipuri de postări personalizate, cum ar fi portofoliu, galerie, mărturii și multe altele.

Un alt exemplu este că vizitatorii dvs. pot utiliza cu ușurință acest plugin pentru a filtra produsele dvs. și pentru a găsi ceea ce caută. Și dacă sunteți familiarizați cu codul, făcându-l manual vă permite să aveți și mai mult control asupra modului în care sunt afișate rezultatele căutării și a parametrilor utilizați.

Încheierea

Asigurarea faptului că site-ul dvs. web este ușor de utilizat, permițându-le vizitatorilor să găsească rapid conținutul dorit, este o modalitate excelentă de a le oferi o experiență plăcută utilizatorului și de a-i încuraja să revină. Dacă site-ul dvs. este bogat în conținut, luați în considerare implementarea filtrelor de pagini și postări pentru a vă asigura că obțin conținutul pe care doresc să îl vadă mai mult.

Ne-ar plăcea să auzim oricare dintre experiențele dvs. cu căutarea și filtrarea WordPress. Spuneți-ne în comentariile de mai jos.

Imagine în miniatură a articolului de graphicglobe / shutterstock.com