10 najczęstszych błędów wtyczek WordPress

Opublikowany: 2019-08-27

Jedną z najbardziej udanych funkcji WordPressa jest to, że był w stanie zachęcić społeczność programistów, którzy rozszerzają podstawową funkcjonalność tego systemu zarządzania treścią poprzez tworzenie wtyczek. To oraz fakt, że udział WordPressa w rynku nie przestał rosnąć w ostatnich latach, jest kluczem do przyciągnięcia talentów.

Wtyczki WordPress są najlepsze. Wiedząc, że jeśli chcesz dostosować swoją witrynę, możesz to zrobić, po prostu szukając wtyczki, która robi to, czego potrzebujesz, co zapewnia spokój ducha. A także znacznie obniża koszty.

Brak konieczności (w większości przypadków) opracowywania niestandardowych rozwiązań to ulga. Demokratyzuje dostęp do złożonych stron internetowych za ułamek ceny, którą kosztowałyby kilka lat temu.

Smutny mężczyzna patrzący na swoje stopy podczas deszczu
Widziałem rzeczy, w które nie uwierzysz. Wykrywaj wtyczki do nagrywania poza edytorem. Widziałem błędy świecące w ciemności w pobliżu bazy danych WordPressa. Wszystkie te chwile przepadną… z czasem… jak łzy w deszczu. Czas je spisać.

Ale nie wszystko jest usłane różami. Wybierając wtyczkę do WordPressa musimy być bardzo ostrożni. Popularność WordPressa przyciąga talenty. Ale przyciąga również mniej doświadczonych programistów, którzy czasami tworzą wtyczki, które nie mają pożądanego poziomu jakości. Wykrycie ich nie jest tak proste, jak policzenie liczby pozytywnych ocen, jakie mają, czy liczby zainstalowanych witryn. To znacznie bardziej złożone.

Coś, na co cierpieliśmy w Nelio, odkąd zaczęliśmy analizować instalacje WordPress naszych klientów, to ilość śmieci, które możemy tam znaleźć. Widzieliśmy rzeczy, w które nie uwierzysz…

Dlatego dzisiaj wyjaśnię niektóre z najczęstszych i najciekawszych problemów, jakie napotkaliśmy przez te lata z wtyczkami WordPress.

Lista problemów z wtyczką WordPress

Tutaj zostawiam ci listę problemów, które możesz znaleźć z wtyczkami WordPress. Są to ogólne problemy i nie podamy konkretnych nazw wtyczek, które na nie cierpią, ale one istnieją i musisz uważać, aby ich unikać.

Utwórz dodatkowe tabele w bazie danych

Baza danych WordPress to strefa wojenna. Wiele wtyczek rozszerza go o własne tabele. To nie musi być złe, ale w większości przypadków nie jest to konieczne.

Baza danych WordPress
Główne tabele bazy danych WordPress.

Baza danych WordPress jest na tyle ogólna, że ​​nie trzeba dodawać nowych tabel do użycia przez wtyczkę. Dlaczego więc programista widzi potrzebę dodania większej liczby tabel do WordPressa? Odpowiedź jest dość prosta: wygoda i ignorancja.

Wiele razy komuś z niewielkim doświadczeniem w WordPressie łatwiej jest umieścić dodatkowe tabele i wykonać zapytania bezpośrednio w SQL w celu odczytania i modyfikacji danych. Oprócz tego, że jest to luka w zabezpieczeniach, jeśli nie zostanie zrobione dobrze, unikasz używania metatabeli.

Jeśli chcesz rozszerzyć informacje o użytkowniku, masz tabelę wp_usermeta . To samo dotyczy treści ( wp_postmeta ), komentarzy ( wp_commentmeta ) czy nawet terminów taksonomii (etykiety i kategorie, z tabelą wp_termmeta ).

WordPress zapewnia metody odczytywania i modyfikowania tych metainformacji w standardowy i bezpieczny sposób. Jeśli nie masz uzasadnienia wydajności, drogi programiście WordPressa, nie używaj dodatkowych tabel w swoich wtyczkach.

Załaduj złe skrypty i style

Większość wtyczek WordPress prędzej czy później będzie musiała załadować własne pliki JavaScript i CSS, czasami w panelu administracyjnym WordPressa, a czasami z przodu strony internetowej. A smutne jest to, że często robi się to źle.

Spiderman niosący człowieka z bezpiecznego miejsca do ognia (tj. robi to źle)
Ładowanie stylów CSS i plików JavaScript w WordPressie to coś, co niestety niewielu programistów robi dobrze.

Aby dodać styl CSS lub plik JavaScript w WordPressie, musisz umieścić go w standardowej kolejce WordPressa. Aby to zrobić, najpierw zarejestruj go za pomocą funkcji wp_register_style i wp_register_script , a następnie umieść w kolejce odpowiednio za pomocą wp_enqueue_style i wp_enqueue_script .

Zauważ, że te funkcje pozwalają zdefiniować zależności, które mają twoje style i skrypty, więc WordPress zarządza zależnościami poprawnie i umieszcza w kolejce tylko to, czego potrzebujesz.

Wszystko inne jest nie tak. I tutaj winna jest nawet dokumentacja deweloperska. Spójrz na przykłady, które znajdują się w haczyku wp_head w kodeksie WordPress. Deweloperzy przyjmą to jako punkt odniesienia, a potem co się stanie, że coś psują?.

Nawet nie myśl o używaniu wp_dequeue_script lub wp_dequeue_style do usuwania z kolejki skryptów lub stylów z WordPressa. Wiele razy widzieliśmy, jak wtyczki usuwają z kolejki wersję jQuery dostarczoną z WordPressem, aby dodać własną (co zwykle jest przestarzałe) i od tego momentu wszystko przestaje działać…

Jeśli wykryjesz wtyczkę, która nie ładuje poprawnie skryptów i stylów zgodnie z wytycznymi WordPressa, jest to wystarczający powód, aby wyłączyć ją z twojej instalacji już teraz.

Brak czyszczenia bazy danych podczas dezaktywacji wtyczki

To kolejny klasyczny aspekt wtyczek WordPress i być może najczęstszy, jaki znajdziesz. Aby działać, wtyczki WordPress będą musiały dodać rekordy do Twojej bazy danych. Problem polega na tym, że po dezaktywacji wtyczki często te rekordy pozostają na zawsze w tabelach bazy danych.

Wtyczki WordPress zwykle nie usuwają danych, które tworzą w Twojej bazie danych, gdy je dezaktywujesz. I nie, nie ma śmieciarki, która co jakiś czas przejeżdża i zabiera ze sobą te bezużyteczne dane.

Wtyczka WordPress powinna usunąć dodatkowe tabele, które utworzyła, oraz dane, które dodała do standardowych tabel, gdy użytkownik ją dezaktywuje. Ale zdarza się to bardzo rzadko. Zachęcam do odwiedzenia swojej bazy danych i pilnowania jej. Na pewno znajdziesz tam bezużyteczne śmieci.

Zrzut ekranu okna dialogowego dezaktywacji Nelio Content
Kiedy dezaktywujesz nasze wtyczki, zobaczysz takie okno dialogowe, w którym możesz je tymczasowo dezaktywować lub usunąć wszystko.

Jeśli programista jest ostrożny, dezaktywacja wtyczki w Twoim WordPressie zapyta, czy chcesz ją dezaktywować tymczasowo, czy na stałe. Ta druga opcja usunie wszystkie dane, które zostały dodane podczas działania, usuwając w ten sposób śmieci, aby wszystko było czyste.

Brak wskazówek dla użytkownika

Kiedy instalujesz wtyczkę WordPress i ją aktywujesz, zwykle oczekujesz, że pojawi się nowe menu na pulpicie nawigacyjnym WordPress, gdzie możesz znaleźć funkcje wtyczki. Lecz nie zawsze tak jest.

Koleś wygląda na zaskoczonego
Jeśli po zainstalowaniu i aktywacji wtyczki WordPress tak czujesz, programista zrobił coś złego.

Czasami nowa wtyczka dodaje menu w istniejącym menu, zwykle menu Narzędzia lub menu Ustawienia. Więc użytkownik będzie musiał zbadać, gdzie jest menu zawierające właśnie zainstalowaną i aktywowaną nową wtyczkę.

Zazwyczaj dobrą praktyką jest opisanie w pliku README.txt wtyczki, co się stanie po aktywacji wtyczki w swoim WordPressie. W ten sposób zmniejszysz niepokój użytkownika i ułatwisz sobie życie. W przeciwnym razie, jeśli użytkownik nie znajdzie funkcji dodawanych przez wtyczkę, dezaktywuje ją, a jako programista jest to ostatnia rzecz, którą chcesz zrobić.

Możesz pomyśleć, że jest to coś, co zdarza się tylko nowicjuszom. Ale tak nie jest. Ostatnio zainstalowałem pewną wtyczkę, aby zrobić pewne rzeczy (przypominam, że miałem zamiar unikać podawania nazw?) i znalazłem się w tej samej sytuacji. Nie mogłem znaleźć ustawień wtyczki. A jeśli zdarzy się mnie, który podobno od dłuższego czasu pracuje z WordPressem, to ta sama sytuacja jest straszna dla kogoś z mniejszym doświadczeniem.

Zmiana interfejsu użytkownika WordPress

WordPress jest łatwy w użyciu, a przynajmniej tak mówią. Ważną częścią tego jest interfejs użytkownika, który WordPress domyślnie zawiera. Ten interfejs jest prosty w nowej instalacji WordPressa, ale staje się bardziej skomplikowany, gdy dodajemy coraz więcej wtyczek.

Ponadto częstym problemem z wtyczkami WordPress jest to, że czasami używają one zupełnie innego interfejsu użytkownika niż ten, który użytkownicy spodziewają się znaleźć na pulpicie nawigacyjnym WordPress.

Homer Simpson idący ulicą
Jeśli korzystasz z WordPressa, ale nie wygląda on jak WordPress, niepotrzebnie wprowadzasz w błąd swoich użytkowników.

Wiem, że interfejs użytkownika WordPressa jest nieco nudny z punktu widzenia projektanta, ale czasami znacznie mądrzej jest stosować te same style i takie same wrażenia użytkownika, do których są przyzwyczajeni użytkownicy, niż zdecydować się na zupełnie inne rozwiązanie.

W naszych wtyczkach staramy się zachować te same style WordPressa i umieszczać każdy element interfejsu użytkownika tam, gdzie naszym zdaniem użytkownik się tego spodziewa. Ale widzieliśmy wiele interfejsów wtyczek, które niewiele lub wcale nie przypominają WordPressa, co dezorientuje użytkowników.

Zaleca się, aby jeśli jesteś projektantem wtyczki WordPress, postępuj zgodnie z przewodnikami po stylu WordPress, a nawet ponownie wykorzystaj komponenty, które teraz zapewnia, do tworzenia interfejsów w React, wyeksportowanych bezpośrednio z edytora bloków Gutenberga. Używamy ich w renowacji Nelio A/B Testing, którą przeprowadzamy i są świetne.

Przekraczanie granic Twojej własności

Pulpit nawigacyjny WordPressa ma dwa różne typy stref z punktu widzenia programisty. Z jednej strony mamy prywatne obszary, czyli te strony, które dodaje konkretna wtyczka. W obrębie tych stref kolejkowane powinny być tylko style CSS i skrypty zawarte we wtyczce, do której należą te strony.

Z drugiej strony mamy wspólne obszary, czyli wszystkie te, które są domyślnie dostępne w WordPressie. Przykładami wspólnych obszarów są edytor treści, edytor menu lub widżetów, ustawienia itp.

Nalewanie śmietany
Jeśli twoja wtyczka jest zepsuta, możliwe, że winna jest inna wtyczka, która niszczy style lub łamie twoje skrypty za pomocą śmieciowego kodu.

Dobrze zaprogramowane wtyczki, zgodne z wytycznymi WordPressa, będą umieszczać w kolejce skrypty i style, które mają wpływ tylko na ich strefę prywatną. Oznacza to, że kiedy umieszczają te zasoby w kolejce, mają warunek w kodzie, aby sprawdzić, czy próbują to zrobić na prywatnej stronie własnej własności, czy nie. W przeciwnym razie nie będą umieszczać w kolejce niczego poza tym zakresem.

Niestety istnieje wiele wtyczek, które „zapominają” uwzględnić ten warunek w swoim kodzie. To powoduje, że ich kod JavaScript i style są ładowane na wszystkich stronach przez cały czas, co może zepsuć inne popularne strony, a nawet prywatne strony innych wtyczek.

Wykrycie go jest łatwiejsze niż się wydaje. Jeśli używasz wtyczki, a jej interfejs użytkownika wygląda na uszkodzony, jest całkiem możliwe, że inna wtyczka umieszcza JavaScript lub CSS tam, gdzie nie powinna i łamie style i zachowanie pierwszej wtyczki. Widzieliśmy to. Nam się zdarzyło (że psują nam interfejs) i niestety tak będzie dalej.

Nieprzestrzeganie dobrych praktyk programistycznych

Nie musisz być najlepszym hakerem na świecie, aby programować w WordPressie, ale należy oczekiwać minimalnej jakości programowania.

Jedną z korzyści (jeśli nie największą) WordPressa jest jego filozofia open source. Eksploracja kodu źródłowego wtyczek to coś, co zawsze możesz zrobić (przynajmniej te wtyczki w oficjalnym repozytorium).

Gruby mężczyzna pracujący stopami na komputerze
Ostrożność w programowaniu można zauważyć po prostu patrząc na wygenerowany kod. Istnieje wiele wtyczek, które sprawią, że będziesz płakać podczas przeglądania ich kodu źródłowego.

Możesz znaleźć wszystko: kod, który miło zobaczyć i kod, który sprawi, że będziesz płakać. I to nie znaczy, że jeden jest gorszy od drugiego z punktu widzenia wydajności. Ale jeśli widzisz dobrze udokumentowany, dobrze wcięty kod, a także uporządkowany zgodnie z logiczną dystrybucją plików i folderów, to znalazłeś świętego Graala.

Jeśli dobrze jest zobaczyć kod wtyczki WordPress, to prawdopodobnie dlatego, że programista jest ostrożny i dopracowany. To wyraźny znak jakości.

Otwieranie otworów bezpieczeństwa

Wtyczka WordPress to nic innego jak zestaw instrukcji do kodu. Zwykle PHP i JavaScript, które rozszerzają funkcjonalność WordPressa. Ten kod całkiem bezpiecznie pobierze dane od użytkownika i wyrenderuje informacje na ekranie.

Kot piszący na komputerze bardzo szybko
W większości przypadków jest to niezamierzone, ale jeśli nie zweryfikujesz danych i nie uciekniesz im, otwierasz więcej drzwi niż powinieneś dla potencjalnych napastników.

Możliwe, że podczas pobierania danych i drukowania ich na ekranie dodajesz dziury w zabezpieczeniach, jeśli nie przetwarzasz tych danych poprawnie. WordPress kładzie duży nacisk na weryfikację i oczyszczanie danych wejściowych oraz unikanie danych wyjściowych.

Istnieje wiele funkcji służących do sprawdzania poprawności danych i upewniania się, że to, co użytkownik wprowadza do wtyczki, jest naprawdę tym, czego chcemy, a tym samym pozwala uniknąć wstrzykiwania kodu. Jeśli twórca wtyczek ich nie używa, to z powodu lenistwa lub ignorancji. Uważaj, co ostatecznie instalujesz w swoim WordPressie, bo inaczej tego pożałujesz.

Wykonywanie nieodpowiednich czynności

Kontynuując poprzednią sekcję, istnieją wtyczki pochodzące ze źródeł o wątpliwym pochodzeniu. Czasami, aby zaoszczędzić trochę dolarów, nurkujesz w ciemnych miejscach w Internecie w poszukiwaniu pliku .zip , który zawiera wtyczkę, którą chcesz, ale za którą nie chcesz płacić.

Mężczyzna twierdzący, że rozumie, jak działa głęboka sieć
Wszyscy to wiemy, a czasem nawet to zrobiliśmy. Aby zaoszczędzić trochę dolarów, udaliśmy się w mroczne zakamarki Internetu w poszukiwaniu czegoś za darmo.

Kiedy ją znajdziesz, wszystko jest szczęściem, dopóki nie zdasz sobie sprawy, że ta wtyczka ma prezent. Od robotów indeksujących, koparek kryptowalut, spamu, a nawet złośliwego kodu, który może przejąć kontrolę nad Twoją witryną. Możesz znaleźć wszystko.

Uważaj na pochodzenie wtyczek, które tam znajdziesz. Oficjalne repozytorium WordPressa i najbardziej znane rynki są jedynym niezawodnym źródłem wtyczek WordPress. Aby znaleźć się w tych repozytoriach, twórcy wtyczek muszą przejść kilka testów jakości. Ufaj tylko znanym miejscom i unikaj wtyczek uzyskanych z niewiarygodnych źródeł.

Nie dodaje wartości

Najgorszym błędem, jaki może popełnić wtyczka WordPress, jest niedodawanie wartości użytkownikom. Jako programista czasami masz szalone pomysły, które Twoim zdaniem mogą być bardzo przydatne dla innych. Prawda jest taka, że ​​jeśli twoja wtyczka jest bardzo mała, liczba użytkowników będzie podobna.

W oficjalnym repozytorium WordPressa znajduje się wiele wtyczek, których wartość jest niska. Ale to jest coś, co dzieje się na każdym rynku lub repozytorium aplikacji.

Jeśli jako programista chcesz wyróżnić się na tle konkurencji, skup się na dostarczaniu wartości potencjalnym użytkownikom. W ten sposób Twoja wtyczka zyskuje popularność niezbędną do odniesienia sukcesu w WordPressie.

Wybór wtyczek WordPress jest skomplikowany

Nie wszystko opiera się na liczbie recenzji użytkowników i liczeniu gwiazdek. Wybór dobrej wtyczki do WordPressa jest skomplikowany. Istnieje wiele ukrytych niespodzianek, które można odkryć dopiero analizując kod źródłowy samej wtyczki. A jeśli nie masz wiedzy, aby to zrozumieć, bądź ostrożny.

Spójrz na komentarze, które znajdziesz na forum wsparcia wtyczek w repozytorium, aby zobaczyć, jakie problemy mają z nim ludzie. Wypróbuj wtyczkę w kontrolowanym środowisku, a jeśli zobaczysz coś dziwnego, skontaktuj się z programistą w celu uzyskania pomocy.

Jeśli po tym nie jesteś zadowolony z tego, co widzisz, poszukaj alternatywy. Czekają na Ciebie tysiące wtyczek. Lub zostaw nam komentarz poniżej. Nieustannie szukamy pomysłów na nowe, ciekawe wtyczki do dodania do naszej kolekcji.

Polecane zdjęcie autorstwa Goh Rhy Yan na Unsplash .