PHP – wyświetlanie treści w zależności od wersji językowej

Istnieje już mnóstwo wtyczek WordPressa do obsługi wersji językowych. Ja w większości swoich witryn używam świetniej kontynuacji popularnej wtyczki qTranslate, która pojawiła się po jakimś czasie jako qTranslate-X. Poza szerokim wsparciem dla innych pluginów wtyczka oferuje również duże wsparcie w zakresie wdrażania własnych szablonów w najpopularniejszym CMS’ie.

Działanie

Po wykonaniu szablonu dla klienta okazało się, że zdecydował się przygotować również angielską wersję witryny. Postanowiłem więc zaimplementować wtyczkę qTranslate-X aby klient mógł w prosty sposób dodawać nowe treści  na stronie. Podczas tworzenia szablonu dodałem prosty moduł, który pokazywał kilka wybranych produktów wraz z ich statusem dostępności. Teksty nie były dynamicznie pobierane, a jedynie wpisane na „sztywno”. Potrzebowałem rozwiązania, które po zmianie wersji językowej na angielską zmieni my również treść zawartą w module.

Oczywiście można coś takiego zrobić na kilka sposobów. Np. pobrać teksty z utworzonej strony. Ale tym razem postanowiłem to zrobić w nieco inny sposób, a mianowicie wykorzystałem skrypt, który sprawdza wersję językową strony. I tutaj znów przychodzi z pomocą qTranslate-X, która posiada już przygotowane zmienne. Wystarczy je tylko pobrać i można zaczynać. Dodatkowo w tym rozwiązaniu wykorzystuję Custom Fields z wtyczki ACF.

 

[cc lang=”php”]
$verfugbarab = get_post_meta($post->ID, ‚datadata’, true);
if (empty($verfugbarkeit)) {
echo ‚Erhältlich ab ‚ . $verfugbarab;
} else {
echo $field[‚label’] . implode(‚, ‚, get_field(‚verfugbarkeit’));
}
break;
case „en”: //JEŚLI JEST WERSJA ANGIELSKA

//POBIERAMY NAZWY PÓL
$field_name = „verfugbarkeit”;
$field = get_field_object($field_name);

$verfugbarkeit = get_post_meta($post->ID, ‚verfugbarkeit’, true);
$verfugbarab = get_post_meta($post->ID, ‚datadata’, true);
if (empty($verfugbarkeit)) {
echo ‚Available since ‚ . $verfugbarab;
} else {
echo ‚Availability: ‚ . implode(‚, ‚, get_field(‚verfugbarkeit’));
}
break;
}
}
?>
[/cc]

Dodaj komentarz

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