9 marca 2020

Wyszukiwarka WordPress – tworzenie i programowanie

Kategoria: Programowanie
Tagi: WordPress,
Autor: Paweł Mansfeld

Wyszukiwarka WordPress – tworzenie i programowanie

W tym wpisie stworzymy wyszukiwarkę WordPress i zaprogramujemy stronę z wynikami. Dokonamy filtrowania i sortowania aby spełnić wymagające przypadki użycia tej przydatnej i natywnej funkcji WordPressa.

Wyszukiwarka może być przydatna w rozbudowanych serwisach i stronach z obszernym katalogiem produktów bądź bazą wiedzy.

Tworzenie formularza lokalnej wyszukiwarki

Aby móc skorzystać z dobrodziejstw lokalnej wyszukiwarki WordPress, należy stworzyć prosty formularz z jednym polem tekstowym i przyciskiem odpowiedzialnym za wysłanie frazy.

Wyszukiwarkę możemy wywołać za pomocą natywnej instrukcji z dokumentacji:

 get_search_form();

W ten sposób w szablonie wyświetlimy prosty formularz z wyszukiwarką:

Formularz wyszukiwarki WordPress

Jest to wygodne ale taka technika nie daje nam możliwości wygodnego dostosowania wyglądu formularza. W praktyce opłaca się dodać zwykły kod HTML:

<form role="search" method="get" id="searchform" class="searchform" action="<?php bloginfo("url"); ?>">
<div>
<label class="screen-reader-text" for="s">Szukaj:</label>
<input type="text" value="" name="s" id="s" />
<input type="submit" id="searchsubmit" value="Szukaj" />
</div>
</form>

Kiedy wprowadzimy coś do tak stworzonego formularza powinniśmy być odsyłani do adresu:

https://adres-strony.pl/?s=fraza

Wyświetlanie wyników z wyszukiwarki

Chcąc wyświetlić wyniki z wyszukiwarki, tworzymy plik search.php, w którym możemy zamieścić szukaną frazę:

<?php echo get_search_query(); ?>

Posty wyświetlimy za pomocą pętli:

global $post;
$args = array( 's' => esc_html( get_search_query( false ) ), 'posts_per_page' => 32 );
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
<div class="col-md-12">
        <a href="<?php the_permalink(); ?>"><h3><?php the_title(); ?></h3></a>
       </div>
<?php endforeach;
 wp_reset_postdata();?>

Sortowanie, organizacja wyników i dodawanie własnych zmiennych

Wyniki z wyszukiwarki można dowolnie sortować a w pętli z powyższego punktu można dodać dodatkowe argumenty, które zawężą wyniki do danej kategorii, wpisów czy innej niestandardowej funkcjonalności filtrowania. Jest to tak proste, że wcale nie trzeba do tego używać wtyczek.

Teoretycznie możemy stworzyć kilka formularzy do wyszukiwania czy to postów, załączników czy innych obiektów. Wystarczy do formularza dodać własne dodatkowe pole, niech to będzie <input type=”hidden” name=”cat” value=”programowanie”>. Wtedy, WordPress przejdzie do adresu:

 https://adres-strony.pl/?s=fraza&cat="programowanie"

Za pomocą wbudowanej w WordPress metody get_query_var() możemy teraz pobrać zmienną cat i przefiltrować wyniki:

<?php
$cat = get_query_var("cat");

Zmienną $cat można teraz użyć do przefiltrowania wyników. W argumencie metody get_posts() wystarczy dodać pola category_name, cała tablica z argumentami będzie więc wyglądała następująco:

$args = array( 
's' => esc_html( get_search_query( false ) ),
'category_name' => $cat,
'posts_per_page' => 32 );

Można też wykorzystać inne parametry takie jak: sortowanie, daty publikacji, ID konkretnego autora czy tagu. Można też stworzyć rozbudowaną wyszukiwarkę – bo w końcu nie trzeba tych dodatkowych pól ukrywać:

Złożona wyszukiwarka WordPress

Wystarczy do formularza dodać odpowiednio:

<input type="text" value="" name="cat" id="cat" />
<input type="text" value="" name="author" id="author" />

Za pomocą metody GET, dane zostaną dodane do adresu URL a my możemy wszystkie zmienne pobrać metodą get_query_var() i uwzględnić w pętli z wynikami.

Kwestie SEO

Należy pamiętać o szalenie istotnej rzeczy, która jest charakterystyczna dla stron wygenerowanych z wewnętrznej wyszukiwarki. Strony te nie mogą być indeksowane w Google. W nagłówku strony należy umieścić dyrektywę “noindex” dla robotów:

<meta name="robots" content="noindex">

Źródła

https://developer.wordpress.org/reference/functions/get_search_form/

https://www.seroundtable.com/google-block-search-results-pages-24279.html

Oceń artykuł na temat: Wyszukiwarka WordPress – tworzenie i programowanie
Średnia : 4.6 , Maksymalnie : 5 , Głosów : 5


 

Odpowiedz lub skomentuj

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *




Komentarze

Janusz Kamiński

19 marca 2020

Dobry poradnik! Dziękuję!

 

Wykryto brak połączenia z Internetem.