Facet z gitarą przedstawia problemy z wtyczką WordPress Pretty Links

Wtyczka Pretty Links nie działa

Na jednym z blogów instalowałem ostatnio wtyczkę Pretty Links. Tak w skrócie, jest to wtyczka do skracania i zarządzania linkami na naszej stronie. Po zainstalowaniu wtyczki, okazało się, iż wtyczka widnieje co prawda w panelu administratora, lecz niestety nie działa. Nie można dodać żadnych linków…

Nie można dodać nowych linków

Po instalacji wtyczki, która przebiegła bez problemów, zabrałem się za dodawanie nowych linków do tejże wtyczki. To znaczy chciałem się zabrać, bo po dodaniu nowego linku owszem pojawiał się optymistyczny komunikat o sukcesie operacji („Your Pretty Link was Successfully Created”), jednak żadnego nowego linku uświadczyć w panelu wtyczki nie można było.  Pierwsza rzecz, dezaktywacja wtyczki i ponowne jej włączenie – skutków brak. Odinstalowanie wtyczki i ponowna instalacja – skutków brak. Hmmm… czas poradzić się wujka Google.

Wujek dobra rada odsyła mnie do pomocy wtyczki na oficjalnym forum WordPress. Tam dowiaduję się, że prawdopodobnie podczas instalacji coś poszło nie tak z tworzeniem tabel i aby to naprawić, należy zdezaktywować wtyczkę, usunąć jeden wiersz w bazie danych i ponownie wtyczkę Pretty Links uruchomić. Odpalam więc phpMyAdmin, szukam w tabeli  wp_options odpowiedniego wiersza – prli_db_version, i oczywiście, jak radzi twórca wtyczki, usuwam go. Niestety – skutków brak. Przynajmniej u mnie, bo u niektórych osób ten sposób pomógł – także zamieszczam ku pamięci.

Usuwamy wiersz z bazy danych powodujący błąd we wtyczce Preety Links

Pretty Links – walczymy dalej

W pewnym momencie, po którejś tam różnorakiej próbie, po którejś tam dezaktywacji i aktywacji wtyczki, byłem już bliski wykorzystania innej, konkurencyjnej wtyczki, do bojowego zadania zarządzania linkami w WordPress. Jednak stwierdziłem, że to by było za proste, a jak uda mi się znaleźć rozwiązanie problemu, opiszę je na blogu. I mamy oto ten wpis. Rozwiązanie to, rzekłbym jest bardziej obejściem, bądź co bądź wtyczka działa wreszcie tak jak powinna. To znaczy linki dodają się prawidłowo.

Co najlepiej zrobić najpierw jak coś nie działa? Zajrzeć do instrukcji… a później do logów serwera. Zaglądam się do logów i widzę, że podczas aktywacji wtyczki występuje błąd: „Index column size too large. The maximum column size is 767 bytes.” i instalator wtyczki Pretty Links nie może utworzyć głównych tabel w bazie danych. Więc mamy przyczynę. Szukam więc informacji na temat tego błędu. Okazuje się, że ma on coś wspólnego ze mianą kodowania bazy danych WordPress z utf8 na utf8mb4. W skrócie, coś tam się po prostu w naszej tabeli nie mieści, po zmianie kodowania. Przekopałem kilka wątków na różnych forach, postawiłem nawet testowego WordPressa na tym samym hostingu używając starego kodowania… Nie działa.

Po kilku próbach wpisania w Google różnych haseł, już wiem jak ważne jest, by prawidłowo sformułować zapytanie o to czego szukamy. Znalazłem odpowiedź, ponownie na oficjalnym forum WordPress, oczywiście w sekcji dotyczącej wtyczki Pretty Links. Otóż zmiana kodowania faktycznie coś napsuła i rozwiązaniem jest zmiana jednej linijki kodu w jednym z plików wtyczki. Jest to rozwiązanie podane przez autora wtyczki.

W pliku PrliDb.php zmieniamy linijkę 39, która wygląda tak:

$char_col = "DEFAULT CHARACTER SET {$charset} COLLATE {$collation->Collation}";

na:

$char_col = "DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";

 

Ja zrobiłem to tak:

  1. Dezaktywowałem i usunąłem wtyczkę
  2. Pobrałem na komputer wtyczkę z repozytorium WordPress
  3. Rozpakowałem archiwum
  4. W pliku pretty-link/tags/2.1.2/app/models/PrliDb.php w lini 39 zamieniłem kod jak powyżej
  5. Wrzuciłem wtyczkę poprzez FTP na stronę i aktywowałem
  6. Cieszę się działającą wtyczką i nowym tematem na wpis

PS. W kroku nr. 4, cyfry 2.1.2 są oznaczeniem wersji wtyczki. Zapewne niedługo będzie ona wyższa, i miejmy nadzieję, że ten wpis nie będzie już potrzebny, bo autor wprowadzi odpowiednie poprawki.

Ot, historii koniec o walce z niedziałającą wtyczką do WordPress Pretty Links.

 

Zdjęcie do wpisu: Clem Onojeghuo on Unsplash