Wielojęzyczna strona w Wordpresie

Wielojęzyczna strona w Wordpresie

Sporo osób ma problem z utworzeniem w WP strony w kilku językach. Postanowiłem więc opisać jeden ciekawy sposób, który pozwoli nam łatwo stworzyć taką stronę. Możemy oczywiście zastosować w tym celu pluginy takie jak xLanguage lub qTranslate. Rozwiązanie to ma jednak kilka wad – przeważnie wtyczki te nie działają z innymi pluginami, które modyfikują coś w treści poszczególnych stron. Obsługa ich też nie jest zbyt efektywna. Zamiast tego można zrobić tak:

1. Tworzymy kilka instalacji WordPressa w jednej bazie danych dla poszczególnych języków. Różnią się one tylko i wyłącznie prefiksem. Np. język defaultowy ma prefiks wp_, a np. dodatkowy język powiedzmy niemiecki wpde_. Pliki nie są w żaden sposób duplikowane.

Bazę można sobie skopiować po utworzeniu defaultowej wersji i ustawieniu wszystkiego i zmienić tylko prefiks.

2. Dalej będziemy potrzebowali dodatkowej subdomeny dla drugiego języka w postaci np. de.nazwastrony.pl – musi ona być skierowana na ten sam katalog co domena główna. Teraz dodajemy do pliku config.php taki kod, a w zasadzie zamieniamy linijkę:

$table_prefix  = 'wp_';

na:

$subdomain = substr($_SERVER['HTTP_HOST'], 0, strpos($_SERVER['HTTP_HOST'], '.'));
if ($subdomain == 'de')
{
$table_prefix = 'wpde_';
}
else
{
$table_prefix = 'wp_';
}

Powyższy kod robi jedną prostą operację. Wykrywa czy wejście na stronę nastąpiło z subdomeny – jeśli tak to zmienia prefiks z wp_ na wpde_ dzięki czemu na stronie zacznie się pojawiać treść z bazy w innym języku.

3. Wystarczy jeszcze tylko w kodzie templatki dodać flagi podlinkowane odpowiednio do adresu z subdomeną i bez subdomeny i wszystko działa.

4. Aha, w konfiguracji WP należy jeszcze zmienić w tej dodatkowej wersji językowej adres bloga na adres z prefiksem.

Dzięki takiej operacji mamy  osobny panel dla każdej wersji językowej w zależności z której domeny wejdziemy do wp-admin.  To rozwiązanie ma swoje wady i zalety. Wadą na pewno jest konieczność tworzenia drugiej bazy. Zaleta jest taka, że mamy osobną edycję do każdego języka i nic nam się nie miesza. Możemy także w każdej wersji językowej zmodyfikować szablon, co może przydać się np. do zmiany odnośnika „read more” itp. Dodatkowa wersja językowa może się różnić także kategoriami, stronami itp. – w zależności od tego czy mamy tłumaczenie do danej strony czy nie możemy ją np. całkiem wyłączyć lub zmienić na inną.

Sposób ten zastosowałem na stronie mojej klientki, gdyż żaden plugin stworzony do tego celu nie chciał działać jak należy. Mam nadzieję, że komuś się to przyda. Komentarze jak zwykle mile widziane.

Autor: