Usprawnianie wyszukiwarki WordPressa dla WooCommerce
Opublikowano 25 maja 2016
Kategorie: Tworzenie stron, WordPress, Wszystkie
2
Wyszukiwarka WordPressa domyślnie szuka w dowolnych typach treści: Stronach, Wpisach, własnych typach treści, produktach (np. dla WooCommerce).
Sposób wyświetlania wyników jest jednak ujednolicony - właśnie ze względu na jej uniwersalność.
W przypadku sklepów internetowych istotne jest, by na stronie wyników wyszukiwania była podana np. cena.
Dzisiaj opiszę, jak to zrobić.
Dodawanie ceny i przycisku zakupu w wyszukiwarce WordPressa
Potrzebny będzie plik search.php motywu - jeśli go nie ma, trzeba go utworzyć i skopiować treść z pliku domyślnie ładowanego, który można wykryć wtyczką What The File.
Następnie zaraz za główną pętlą, czyli za:
while ( have_posts() ) : the_post();
należy wkleić:
$result_post_type=get_post_type(get_the_ID());
Teraz zmienna $result_post_type będzie zawierać typ treści danego wyniku wyszukiwania, np. "product".
Dalej warto w otaczającym wynik wyszukiwania divie dodać klasę CSS dla danego typu treści:
<div <?php post_class('search-result-'.$result_post_type); ?>>
Dzięki temu możemy łatwo modyfikować kod CSS.
Warto również w tytule każdego wyniku wyszukiwania dodać opis, jakiego typu jest to treść (Produkt, Strona, Przepis (np. dla dodatkowej wtyczki WP Ultimate Recipe), Wpis (u mnie zwany Artykułem)):
<h2><? if($result_post_type=='product'){
echo __('Produkt', 'ss-woocommerce') . ': ';
}elseif($result_post_type=='page'){
echo __('Strona', 'ss-woocommerce') . ': ';
}elseif($result_post_type=='post'){
echo __('Artykuł', 'ss-woocommerce') . ': ';
}elseif($result_post_type=='recipe'){
echo __('Przepis', 'ss-woocommerce') . ': ';
} ?> <? the_title(); ?></h2>
Wreszcie, aby załadować domyślny styl wyświetlania produktów WooCommerce, należy wkleić w głównej pętli:
<? if($result_post_type=='product'){
wc_get_template_part( 'content', 'product' );
}else{
// treść wyświetlana, jeśli wynik nie jest produktem
} ?>
Domyślnie do wyświetlania wyniku wyszukiwania produktu WooCommerce ładowany będzie plik woocommerce/content-product.php (o ile istnieje w motywie, a jeśli nie ma go, to z katalogu wtyczki). Często będzie to jednak wąski prostokąt. Aby stworzyć osobny styl wyświetlania wyniku, treść pliku woocommerce/content-product.php należy skopiować do nowego pliku, np. woocommerce/content-search-result-product.php, i w powyższym kodzie zmienić wyraz content na content-search-result. Następnie można wprowadzić zmiany w nowym pliku. Można też oczywiście zamiast kopiować ten plik, używać filtrów, które w nim się znajdują.
Liczba wyników wyszukiwania WooCommerce
Aby na stronie wyników wyszukiwania podać łączną liczbę wyników, należy przed główną pętlą wkleić kod:
<? $mySearch = new WP_Query("s=$s&showposts=-1");
$num_results_found = $mySearch->post_count;
print '<p class="num_posts_found">' . __('Znalezionych wyników wyszukiwania:', 'sukcesstrony') . ' ' . $num_results_found . '</p>'; ?>
Paginacja wyników wyszukiwania
Stosując wtyczkę WP PageNavi należy pamiętać, by jako parametr funkcji przekazać tablicę z własną instancją WP_Query, w ten sposób:
if(function_exists('wp_pagenavi')){
wp_pagenavi(array( 'query' => $mySearch ));
}
W końcu znalazłam to czego szukałam, a konkretniej chodziło mi o to, w jaki sposób dodać klasę CSS ;)
Cieszę się, że mogłem pomóc :)