WPML – tłumaczenie strony w WordPress i problem wyszukiwania
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; }
Brak komentarzy