Kompletny przewodnik po WordPressie i filtrowaniu stron

Opublikowany: 2017-07-13

Jeśli kiedykolwiek robiłeś zakupy w Amazon, prawdopodobnie doceniasz już moc filtrów, które pozwalają zagłębić się w dużą treść i zlokalizować dokładnie to, czego szukasz. Podczas wyszukiwania produktu na Amazon zawsze znajduje się pasek boczny pełen filtrów, które pomagają zawęzić wyszukiwanie, zwracając tylko wyniki, które spełniają Twoje najważniejsze wymagania. Filtry takie jak ocena klientów, marka, czy produkt jest dla mężczyzn czy kobiet, stan (nowy/używany) i wiele innych.

Biorąc pod uwagę, jak przydatne są filtry treści, prawdopodobnie nie powinno dziwić, że możliwość tworzenia ich dla treści WordPress jest wbudowana bezpośrednio w WordPress Core. A przy odrobinie wiedzy możesz udostępnić tę moc odwiedzającym witrynę, umożliwiając im poruszanie się po treści zwinniej niż kiedykolwiek wcześniej.

W tym poście przeprowadzimy Cię przez proces tworzenia opcji filtrowania treści dla Twoich użytkowników za pomocą wtyczki.

Zacznijmy!

Dlaczego WordPress filtrowanie postów i stron?

WordPress jest niesamowicie elastyczny. Rdzeń pozwala mieć pełną kontrolę nad wszystkim w Twojej witrynie. Filtrowanie postów i stron to jedna z najpotężniejszych funkcji WordPressa. Istnieje kilka wbudowanych funkcji dla postów, stron i niestandardowych treści. Dodatkowo istnieje wiele sposobów wybierania, grupowania i filtrowania elementów przechowywanych w bazie danych. Możesz tworzyć sortowalne listy wyników wyszukiwania według szablonu strony, typów postów, terminów taksonomii, hierarchii szablonów, stron produktów lub czegokolwiek innego.

Domyślnie WordPress ma wbudowaną funkcję wyszukiwania. Jednak ta funkcja wyszukiwania pozostawia wiele do życzenia i nie pomaga, gdy czytelnicy chcą filtrować wyniki w określony sposób. W tym miejscu pojawia się pomoc wtyczki innej firmy.

Co robi wtyczka wyszukiwania i filtrowania?

Wtyczka Search & Filter to łatwa w użyciu wtyczka, która przenosi domyślne pole wyszukiwania WordPress na wyższy poziom. Umożliwia odwiedzającym wyszukiwanie określonego terminu i filtrowanie wyników na podstawie kategorii, tagów, niestandardowych typów postów, niestandardowych taksonomii, zakresu dat, a nawet kombinacji wszystkich z nich, aby uzyskać bardziej precyzyjne wyszukiwanie i dokładniejsze wyniki.

Korzystanie z wtyczki jest banalnie proste. Po zainstalowaniu i aktywacji wtyczki zostaniesz przeniesiony na stronę ustawień ze szczegółowym wyjaśnieniem, jak z niej korzystać. Krótko mówiąc, możesz użyć skrótu w dowolnym miejscu w swoich postach, stronach lub dowolnych widżetowych paskach bocznych. Alternatywnie, jeśli czujesz się odważny i nie masz nic przeciwko ubrudzeniu sobie rąk drobnym kodem, możesz wkleić pojedynczą linię kodu do pliku motywu.

Przyjrzyjmy się kilku przykładom.

Jak filtrować posty za pomocą wyszukiwania i filtrowania

Najbardziej podstawowym zastosowaniem wtyczki jest skrót, który umożliwia odwiedzającym przeszukiwanie wszystkich kategorii i tagów. Domyślny shortcode wygląda tak:

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

Możesz wstawić go do dowolnego postu, strony lub widżetu tekstowego, a wyświetli opcje filtrowania z polami wyszukiwania, kategorii i tagów na interfejsie:

Jeśli chcesz, aby odwiedzający mogli wybrać więcej niż jedną kategorię lub tag, możesz to łatwo zrobić, modyfikując krótki kod tak, aby zawierał pola wyboru zamiast listy rozwijanej i oznaczając każde pole:

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

Powyższe przykłady pokazują, jak korzystać z wtyczki na pasku bocznym. Możesz jednak użyć go również w pliku motywu, aby wyświetlić go na dowolnej stronie. W poniższym przykładzie formularz wyświetla się na stronie bloga. Wszystko, co musisz zrobić, to wkleić następujący wiersz kodu:

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

W naszym przypadku dodaliśmy go do głównego szablonu indeksu motywu Twenty Seventeen.

Jak filtrować niestandardowe taksonomie?

Powyższe przykłady pokazują bardzo podstawowe zastosowanie wtyczki. Ale wtyczka Search & Filter akceptuje również inne parametry. Możesz użyć skrótu, który pozwala odwiedzającym filtrować wyniki wyszukiwania tylko dla niestandardowych taksonomii.

Załóżmy, że masz sklep na swojej stronie z WooCommerce. Jeśli chcesz uwzględnić kategorie produktów w wynikach wyszukiwania, wystarczy dodać następujący krótki kod:

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

W tym przykładzie dodałem również nagłówki przed każdym polem, aby odwiedzający mieli łatwiejszy czas na rozróżnianie pól:

Jeśli chcesz wyświetlić to na stronie w swoim motywie, wystarczy wkleić następujący wiersz kodu w odpowiednim szablonie strony w obszarze Wygląd > Motywy > Edytor :

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

Jak filtrować posty według zakresu dat?

Innym zastosowaniem przypadku jest umożliwienie odwiedzającym wyszukiwania postów w określonej kategorii w określonym zakresie dat. W takim przypadku po prostu wklej następujący wiersz kodu do pliku archive.php :

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

Jak filtrować formaty postów i strony?

W ostatnim przykładzie przyjrzyjmy się filtrowaniu formatów postów i stron. Jeśli publikujesz posty wideo lub audio, ten krótki kod pozwoli odwiedzającym znaleźć tylko posty należące do określonego przez Ciebie formatu postu:

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

Jeśli chcesz, aby odwiedzający filtrowali strony lub posty, wszystko, czego potrzebujesz, to shortcode, który akceptuje typy postów jako parametry:

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

Poza powyższymi przykładami, wtyczka pozwala uzyskać jeszcze bardziej szczegółowe informacje, włączając parametry porządkowania wyników w kolejności hierarchicznej, aby pokazać liczbę postów w określonych kategoriach, dodać klasy, autorów filtrów i wiele więcej.

Jak ręcznie filtrować posty

Jak w przypadku wszystkiego, co dotyczy WordPressa, można to zrobić bez użycia wtyczki. Załóżmy, że chcesz utworzyć prosty formularz, który umożliwi odwiedzającym filtrowanie postów z określonej kategorii.
Najpierw musisz stworzyć prosty formularz:

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

W powyższym formularzu pierwsza część po prostu pozwala użytkownikowi wybrać taksonomie za pomocą funkcji get_terms . Możesz użyć tego dla domyślnych kategorii i tagów, a także niestandardowych taksonomii. W następnej części dodano przyciski radiowe, które umożliwiają odwiedzającym wyświetlanie wyników w kolejności rosnącej lub malejącej. Wreszcie ostatnia część to przycisk formularza, który pozwala zastosować wybrane filtry.

Cały formularz został dodany do szablonu sidebar.php w opcji Wygląd > Motywy > Edytor .

Następnym krokiem jest użycie jQuery, dzięki czemu wyniki mogą być wyświetlane bez konieczności ponownego ładowania strony:

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

Ostatnim fragmentem kodu jest dodanie funkcji do pliku function.php, która przetworzy wynik na podstawie wybranych filtrów. Przejrzy wybraną kategorię i dopóki istnieją posty, wyświetli je według daty opublikowania w porządku rosnącym lub malejącym. Jeśli w kategorii nie zostaną znalezione żadne posty, wyświetli się komunikat, że nie znaleziono postów:

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

Ostateczny wynik wyświetla się w ten sposób w interfejsie użytkownika:

Dlaczego powinieneś pozwolić swoim czytelnikom filtrować posty i strony w WordPress

Powyższe metody to świetny sposób na umożliwienie użytkownikom filtrowania Twoich postów. Ale dlaczego chcesz to zrobić?

WordPress umożliwia już organizowanie postów za pomocą kategorii i tagów, ale pozwala użytkownikom wyświetlać tylko jedną kategorię lub tag na raz. Co więcej, jeśli używasz niestandardowych typów postów, które używają własnych kategorii, te kategorie nie będą widoczne wraz z tymi używanymi w zwykłych postach.

Wtyczka Search & Filter jest szczególnie przydatna nie tylko wtedy, gdy masz wiele różnych kategorii i tagów połączonych z treścią z roku, ale także przydaje się, jeśli dodałeś niestandardowe typy postów, takie jak portfolio, galeria, referencje i inne.

Innym przykładem jest to, że odwiedzający mogą z łatwością korzystać z tej wtyczki do filtrowania produktów i znajdowania tego, czego szukają. A jeśli znasz kod, wykonanie go ręcznie pozwoli Ci mieć jeszcze większą kontrolę nad sposobem wyświetlania wyników wyszukiwania i używanymi parametrami.

Zawijanie

Upewnienie się, że Twoja witryna jest łatwa w użyciu, umożliwiając odwiedzającym szybkie znalezienie żądanych treści, to świetny sposób na zapewnienie im przyjemnego doświadczenia użytkownika i zachęcenie ich do powrotu. Jeśli Twoja witryna jest bogata w treści, rozważ wdrożenie filtrowania stron i postów, aby upewnić się, że otrzymują treści, które chcą zobaczyć więcej.

Chętnie poznamy Twoje doświadczenia z wyszukiwaniem i filtrowaniem WordPress. Daj nam znać w komentarzach poniżej.

Obraz miniatury artykułu autorstwa graphicglobe / shutterstock.com