WPML – tłumaczenie strony w WordPress i problem wyszukiwania

Styczeń 25, 2019
Jakub

Wyszukiwarka wielojęzykowa z WPML

Najpopularniejsza wtyczka tłumaczeniowa w WordPress posiada setki opcji, zaczynając od tłumaczenia podstawowych wyrażeń, ciągów niestandardowych znaków szablonu po automatyczne aktualizacje walut, mimo to nie jest idealna. Gdy na stronie mamy kilka języków i chcemy wyszukać frazę w języku aktualnie ustawionej strony domyślnie system wyświetli nam wyniki ale ustawi domyślny język, co gorsze nie pokaże wyników w innych językach niż domyślny.

Na szczęście z pomocą przychodzi kod jaki musimy dodać w 2 miejscach, dzięki temu wyniki wyszukiwania uwzględnią inne języki, a cała strona zachowa aktualnie ustawiony język.

Pierwszy kod odpowiedzialny jest za dopisanie danego języka do wyniku wyszukiwania, dzięki temu Rezultat wyszukiwania będzie w ustawionym języku a nie domyślnym, dodajemy go w pliku formularza, zazwyczaj jest to plik: searchform.php

 <input type="hidden" name="lang" value="<?php echo(ICL_LANGUAGE_CODE); ?>"/>

Kod dodajemy w obrębie formularza np. przed przyciskiem submit

 <input type="hidden" name="lang" value="<?php echo(ICL_LANGUAGE_CODE); ?>"/>
 <input value="" type="submit">
 </form>

Dzięki temu uzyskamy taki wynik zapytania: ?search_category=&post_type=product&s=nazwaproduktu&lang=pl

Drugie miejsce, odpowiedzialne za poprawne wyświetlenie wszystkich poszukiwanych elementów w danym języku (dla sklepu będą to produkty, dla bloga artykuły) to plik functions.php naszego aktualnie włączonegoszablonu:

add_action( 'pre_get_posts', 'wpml_custom_search' );
function wpml_custom_search( $query ) {
if( is_search() ) {
 $query->query_vars['suppress_filters'] = true;
 }
 return $query;
}
Udostępnij

Brak komentarzy

Dodaj komentarz

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

Zaakceptuj politykę prywatności.

Więcej w programowanie, WordPress, WPML
Ile kosztuje strona z systemem WordPress ?

System WordPress w skrócie "WP" zyskuje coraz większą popularność w Polsce. Świadczą o tym wyniki...

Zamknij