WordPress 4.0+ i problemy z qTranslate
Gdybym miał wskazać jeden, najbardziej znienawidzony przez developerów WordPressa plugin, to z całą pewnością byłoby to qTranslate. Wtyczka tak bardzo dyskredytowana na WordUpach czy WordCampach, że spokojnie można by organizować konkursy w tym, kto bardziej po niej pojedzie.
Czy cały ten hejt jest słuszny? Jak najbardziej. Niedawno jeden z klientów poprosił o update WordPressa z wersji 3.6 do najnowszej 4.1. Serwis był wielojęzyczny, oczywiście obsługiwany przez qTranslate i z ilością podstron na tyle dużą, że odpadała opcja zmienienia wtyczki na inną. Po aktualizacji na pierwszy rzut oka wszystko było w porządku, nic się nie rozjechało po stronie frontentdu a same tłumaczenia działały bezproblemowo. Gorzej było z adminką, a dokładniej z edycją wpisów. Poniżej zamieszczam listę problemów z którymi musiałem się borykać i sposoby na ich rozwiązanie:
Wtyczka qTranslate wyłącza się z powodu braku kompatybilności z obecną wersją WordPressa.
Na 100% zaraz po zainstalowaniu wtyczki, po wejściu w edycję wpisu lub strony zobaczycie komunikat: The qTranslate Editor has disabled itself because it hasn’t been tested with your WordPress version yet. Jest to chyba największa zmora osób pracujących z qTranslate a sam komunikat jest już chyba znakiem firmowym wtyczki. Na szczęście bardzo łatwo można się go pozbyć. Wystarczy, że otworzycie plik qtranslate.php znajdujący w głównym katalogu pluginu i w okolicach 90 linijki podmienicie:
define('QT_SUPPORTED_WP_VERSION', '3.8.1');
na
define('QT_SUPPORTED_WP_VERSION', $wp_version);
Brak możliwości przełączania się między edytorem wizualnym i tekstowym
Tutaj już zmiany w wtyczce są bardziej hardcorowe, ponieważ wymagają edycji aż trzech plików: qtranslate_javascript.php, qtranslate_hooks.php, qtranslate_wphacks.php. Poprawiony kod znajdziecie tutaj: https://gist.github.com/warenhaus/10990386/. Wystarczy że podmienicie całą zawartość każdego z plików i problemy z edytorem wizualnym powinny zniknąć.
Niewyświetlający się przycisk dodawania mediów
Tym razem by naprawić ten bug, trzeba z czegoś zrezygnować, a mianowicie musimy wyrejestrować skrypt odpowiedzialny za automatyczne powiększania pola edytora wraz z pisaniem. W tym celu np. w functions.php należy wrzucić:
function deregister_editor_expand() { wp_deregister_script('editor-expand'); } add_action( 'admin_init', 'deregister_editor_expand' );
Problem z wysokością pola edycji treści:
Akurat u mnie tego błędu nie uświadczyłem, ale widziałem, że wiele osób na forach o nim wspominało. Zatem jeżeli wysokość edytora zmniejszyła się utrudniając pisanie, wystarczy poniższy kod wrzucić do functions.php:
add_action('admin_head', 'content_textarea_height'); function content_textarea_height() { echo' <style type="text/css"> #qtrans_textarea_content_ifr{ height:420px !important; } </style> '; }
I to w zasadzie tyle, jeżeli mieliście jeszcze jakieś przygody z qTranslate, to śmiało opisujcie je w komentarzach.
Co zamiast qTranslate?
Już miałem kończyć wpis, ale pomyślałem że jeszcze podzielę się z Wami dwoma rozwiązaniami, które obecnie stosuję dla wielojęzycznych stron:
* Wtyczka WPML – ferrari wśród wtyczek tego typu, kosztuję również jak ferrari, ale na pewno się nie zawiedziecie.
* WordPress Multisite – czyli wielojęzyczność bez konieczności instalacji pluginów. Rozwiązanie szczególnie dobre, jeżeli różne wersje językowe strony różnią się od siebie.