Reklama sponsora

ACF i Polylang tłumaczenie strony opcji



ACF, PolyLang i strona opcji

Ostatnio napotkałem ciekawy problem związany z tłumaczeniem strony opcji ACF. Jako że przeważnie jak robię proste strony internetowe zawsze wykorzystuję wtyczkę ACF i do stałych elementów na stronie typu informacje w stopce wykorzystuję stronę opcji napotkałem problem przy wielu językach.

Wtyczka PolyLang doskonale się nadaje do tłumaczenia stron oraz zaawansowanych pól ACF jednak przy stronie opcji pojawia się problem polegający na konieczności wykupienia wersji premium wtyczki. Jednak da się to stosunkowo prosto obejść.

Jak przetłumaczyć stronę opcji ACF za pomocą PolyLang?

Na początek aby dalsze kroki miały jakikolwiek sens trzeba zainstalować wtyczkę ACF i utworzyć stronę opcji, najprościej w pliku functions.php szablonu (o ile robimy własny szablon a zakładam że właśnie robimy).


if (function_exists('acf_add_options_page')) {
acf_add_options_page();
}

Dalej dodajemy jakieś pola do strony opcji przez kokpit całkowicie standardowo. Teraz standardowo aby wyświetlić zawartość takiego pola należy zrobić po prostu

echo get_field('menu-1-etykieta', 'option');

Teraz pojawia się problem jak to przetłumaczyć i tutaj wykorzystamy możliwości polylang do tłumaczenia stringów.

echo pll_e(get_field('menu-1-etykieta', 'option'));

Trzeba jeszcze dodać rejestrację stringa

add_action('init', function() {
 pll_register_string('menu-1-etykieta', get_field('menu-1-etykieta', 'option'));
});

I teraz aby przetłumaczyć string należy zapisać pola strony opcji, następnie wejść w języki i tłumaczenia ciągów tekstowych. Nasze pole powinno być tam możliwe do przetłumaczenia.

Podsumowanie

Ważne by zdawać sobie sprawę z tego że nie jest to najbardziej eleganckie rozwiązanie za to nie mam pomysłu jak można to zrobić prościej w implementacji.

 


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *