RSS
RSS
  • Już 20 sierpnia nowy wpis:
  • "Problem: WPML automatycznie ustawia lub przywraca niepoprawne tłumaczenie"

Usprawnianie wyszukiwarki WordPressa dla WooCommerce


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

Komentarze

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

Komentuj

Subscribe without commenting