WordPress z WPML a zmiana serwera i domeny

WordPress Multilingual Plugin (WPML), to świetne narzędzie do tworzenia wielojęzykowych stron opartych o WordPressa.

Mamy zasadę, że nasze projekty najpierw pokazujemy i dajemy do przetestowania klientowi na naszym serwerze testowym. Tak było i tym razem…
Prawa Murphiego dały się nam jednak we znaki – wszystko „pięknie” działało pod tymczasową domeną roboczą, na maszynie docelowej niestety WPML się rozjechało…

A mogło być tak pięknie

Wykonałem standardowego mysqldumpa, następnie podmieniłem w kilku-megabajtowym pliku domeny i ścieżki z użyciem vima :%s/http:\/\/klient\.domenatestowa\.pl/http:\/\/www\.klient\.pl [cheatsheet]. Tak obrobiony dump zaimportowałem do świeżej bazy danych. I lipa… Niby wszystkie dane zostały przechwycone, ale WPML chce się konfigurować od nowa, a takie „rozwiązanie” powoduje, że wszystkie teksty, niezależnie od pierwotnej wersji języka, lądują nam w jednym worku. Trzeba inaczej…

Przyczyną problemu okazuje się globalna zmiana domen w zrzucie bazy danych, a dokładniej zmiana wartości jednej z opcji WPML.

Rozwiązanie… Prostsze niż myślisz

  1. Robimy dump bazy danych.
  2. Kopiujemy z tabelki wp_options (może być inny prefix niż „wp_„) wartość opcji icl_sitepress_settings.
  3. Obrabiamy dump np. w vimie – globalna zmiana ścieżek do plików i domen.
  4. Importujemy dump do nowej bazy.
  5. Nadpisujemy w wp_options wartość dla icl_sitepress_settings wartością z punktu 2.
  6. Oczywiście w tle lecą pliki. Pamiętamy także o dostosowaniu ustawień bazy w wp-config.php.

Warto spojrzeć

How to move a WP site with WPML the right way – według mnie to jednak nieco masochistyczne rozwiązanie problemu ;-)

Jeśli spodobał Ci się ten artykuł poświęć kilka sekund i podziel się nim ze znajomymi. Nie zapomnij też zapisać się do kanału RSS. Dzięki :]
Słowa kluczowe: ,

Komentarze: 8

  1. Opublikowano 17 grudnia 2010 o 00:07 | Permalink

    A może to po prostu był nie ten plugin? Ja używam qTranslate od gościa z Berlina. Qian Qin czy jakoś tak. Świetny gość i świetny plugin i nie miałem najmniejszego problemu z bazą danych prznosząc bloga w zeszłym roku.

    Można go zobaczyć (plugin) w akcji u mnie na blogu: http://hb.gracz.pro
    na http://bronek.gracz.pro też jest zainstalowany, tak na zaś i ustawiony na jeden język.

    BTW Polskie tłumaczenie interfejsu qTranslate jest mojego autorstwa :P To moja forma przyczynku do idei Open Source jako że nie jestem koderem.

    • Opublikowano 17 grudnia 2010 o 14:21 | Permalink

      WPML jest naprawdę niezłe, ma swoje minusy, ale to jak każdy „duży” plugin. Ponadto jak już wejdziesz w Plugin do translacji i masz sporą bazę wpisów i stron, to ciężko od tak przejść na inny system – zwłaszcza już i teraz podczas przechodzenia na hosting produkcyjny.

      Swego czasu patrzyliśmy też na qTranslate, ale wybraliśmy WPML i w zasadzie sprawdza się (ale koderom zdarzają się też babole w kodzie, które wychodzą w specyficznych konfiguracjach i trzeba hackować).

      Z ciekawości zapytam, używałeś może qTranslate na różnych subdomenach dla języków z włączonym cachem?

    • Opublikowano 17 grudnia 2010 o 15:49 | Permalink

      Nie no migrowanie zawartości to byłaby udręka bez jakiegoś sprytnego skryptu. A nie, nie konfigurowałem subdomen dla języków. Uznałem, że to by było mylne dla pająków. Strona jest jedna i ma jeden adres. Ma zawartość w wielu językach i to jest realizowane poprzez „czyste linki”, a nie subdomeny. Ale z tego co wiem jest to możliwe. Czy mieliście jakieś problemy? Jedną z zalet qTranslate jest to, że autor ma naprawde dobre serce…

    • Opublikowano 17 grudnia 2010 o 16:36 | Permalink

      Jeżeli chodzi o linki i roboty, to warto spojrzeć co na ten temat ma do powiedzenia Google: Multi-regional and multilingual sites (dla celów poglądowych wystarczy tabelka na dole strony „URL structures”). Oczywiście Yandex i chiński wynalazek mogą pracować inaczej, ale wskazówki od G. w dużym uproszczeniu powinny być odpowiednie dla rynku z alfabetem łacińskim.

      Pytasz, co potrafi WPML w kwestii „adresów”, gdyż nie do końca chyba załapałem… [?] :)
      W każdym razie, WPML potrafi zmieniać wersję językową przez parametr, podkatalog lub subdomenę/domenę.

    • Opublikowano 17 grudnia 2010 o 17:09 | Permalink

      Pytam czy mieliście jakieś problemy przy konfiguracji subdomen dla języków?

      Odnośnie wytycznych Google. Jednym słowem można używać wszystkiego co się mieści w pojęciu „clean url”. Nie mniej jednak to nie gwarantuje jednakowego zindeksowania wszystkich języków. Ogólnie Google słabo kmini zawartość wielo języczną. Moja strona najlepiej jest np zindeksowana w Angielskim gdyż tego adresu używa się jako domyślnego przy linkowaniu itd.

    • Opublikowano 17 grudnia 2010 o 17:40 | Permalink

      ad. konfiguracja… Wystarczy skierować subdomeny na ten sam katalog, a resztą zajmie się WPML.

      Co do kminienia przez Google zajrzyj do Unifying content under multilingual templates. Jest z tym trochę zabawy…

    • Opublikowano 17 grudnia 2010 o 17:11 | Permalink

      Szkoda, że w efekcie webmaster tools nie daje możliwości konfiguracji strony jako wielojęzycznej z podaniem typu linkowania itd.

  2. Opublikowano 17 grudnia 2010 o 00:07 | Permalink

    subscribe

Dodaj komentarz

*
*

Subscribe without commenting