Główna » WordPress » Jak korzystać z haków akcji WordPress w dostosowywaniu motywu

    Jak korzystać z haków akcji WordPress w dostosowywaniu motywu

    Motywy potomne WordPress dają stosunkowo łatwy sposób na dostosowanie wyglądu i stylu motywu. Jeśli opcje motywu nie zapewniają odpowiednich wyborów projektowych, możesz po prostu dodać nową regułę do domyślnego pliku arkusza stylów potomnych o nazwie style.css. Ale co się dzieje, gdy chcesz zmodyfikuj funkcjonalność motywu? Jest to jeden z przypadków, gdy akcje WordPress przychodzą z pomocą.

    WordPress stał się tak popularny, częściowo ze względu na wysoką konfigurowalność. WordPress Core jest załadowany różnymi hakami, które umożliwiają programistom modyfikowanie lub ulepszanie domyślnych funkcji. Ponadto możemy włączyć niestandardowe haczyki w naszych motywach i wtyczkach do pomóż innym programistom w łatwym dostosowaniu naszego kodu do ich potrzeb.

    O hakach WordPress

    Haczyki WordPress działają nieco podobnie do haczyków z prawdziwego zdarzenia w tym sensie, że możesz złapać rybę, którą chcesz w odpowiednim miejscu, jeśli odpowiednio z nich korzystasz.

    Możesz usuń złapaną funkcję (np. możesz usunąć pasek administracyjny WordPress dla użytkowników niskiego poziomu) pozostaw to nienaruszone i wzmocnić to z własną funkcjonalnością (np. możesz dodać więcej menu lub obszarów widżetów do motywu) lub możesz zastąp to (np. możesz zmodyfikować zachowanie funkcji podstawowej).

    W WordPressie są dwa różne rodzaje haków: działania i filtry. W tym poście przyjrzymy się, jak możemy wykorzystaj haki akcji w dostosowywaniu motywów.

    Jak działają haki WordPress

    Aby użyć bardzo prostego języka, działania wskaż to coś się stało podczas cyklu życia strony WordPress: niektóre części witryny zostały załadowane, niektóre opcje lub ustawienia zostały skonfigurowane, wtyczki lub widżety zostały zainicjowane itd..

    Filtry różnią się od działania w ich naturze. Oni przywykli przekazać dane, i modyfikuj, zarządzaj lub przechwycić przed wyświetleniem go na ekranie lub zapisaniem danych użytkownika w bazie danych.

    Na każdym ważnym punkcie cyklu życia strony WordPressa znajduje się albo akcja lub a filtr hak, do którego możemy dodaj nasz niestandardowy kod, aby zmodyfikować domyślne zachowanie do naszych potrzeb.

    Niektóre działania i filtry uruchomione podczas żądania zależą od tego, której strony zażądał agent użytkownika: na przykład w pojedynczym żądaniu postu dostępne są haki związane z pojedynczymi postami, ale haki związane z innymi częściami witryny (np. Obszar administracyjny) nie są.

    Znajdź haki akcji

    Action Reference w WordPress Codex daje szczegółowy przegląd działań wykonywanych przez różne żądania. Ważne jest to, że jeśli chcemy wykonać zadanie, musimy je wykonać zaczepić we właściwym miejscu, nie przed ani po nim, w przeciwnym razie akcja nie zostanie zakończona.

    Na przykład, jeśli chcemy dodaj nasz kod Google Analytics do witryny musimy zacznij naszą akcję tuż przed załadowaniem stopki.

    Jeśli mówimy o dostosowywaniu motywów, haki akcji mogą pochodzić z dwóch różnych miejsc: od WordPress Core i sam temat. Są motywy, które w ogóle nie mają haczyków, ale inne dostarczają programistom kilku lub wielu - to zawsze wybór autora tematu. Domyślny motyw Twenty Fifteen ma tylko jeden hak akcji do dostosowywania stopki pod nazwą „dwadzieścia piętnaście”..

    Jeśli chcesz przeglądać kod źródłowy, możesz łatwo znaleźć haki akcji. Haki akcji są dodawane do kodu za pomocą funkcji do_action () WordPress.

    Jeśli uruchomisz szybkie wyszukiwanie wyrażenia „do_action” w bardziej zaawansowanym edytorze kodu - tak jak w Eclipse poniżej - możesz zobaczyć listę miejsc, w których możesz podłączyć niestandardową funkcjonalność do rdzenia. Szukałem w / wp-includes / folder, ale możesz także uruchomić wyszukiwanie / wp-admin / folder zawierający haki akcji związane z pulpitem WordPress (obszar administracyjny).

    Dobrą rzeczą jest to, że nazwy haków akcji są zwykle dość oczywiste, ale są zwykle miły komentarz w kodzie to może dać ci większą wiedzę, czy dany hak akcji jest dobry z powodów, dla których chcesz go użyć.

    Na przykład komentarz kodu przed hakiem akcji „widgets_init” mówi, że to “odpala po zarejestrowaniu wszystkich domyślnych widżetów WordPress”. Jeśli zajrzysz do kodu przed tym hakiem akcji, możesz znaleźć wszystkie domyślne inicjalizacje widżetów WP przed nim - więc możesz być pewien, że komentarz nie kłamie, a jeśli chcesz zarejestrować własny niestandardowy widget, to będzie właściwe miejsce.

    W wielu przypadkach kod źródłowy dostarcza nam znacznie więcej informacji niż Kodeks, więc dobrym pomysłem może być nauczenie się, jak szybko się w nim poruszać.

    Dodaj swoje własne akcje

    Jeśli chcesz dodać własną akcję, musisz utworzyć funkcję niestandardową i powiązać tę funkcję z konkretnym hakiem akcji za pomocą funkcji WordPress add_action (). Niestandardowe akcje dodawane za pomocą funkcji add_action () są zwykle uruchomione na miejscu kiedy rdzeń wywołuje odpowiednią funkcję do_action ().

    Zobaczmy prosty przykład.

    Jak znaleźć hak, którego potrzebujesz

    Powiedzmy, że chcesz dodać niestandardową ikonę ulubionych do swojej witryny. Po pierwsze, musisz znaleźć odpowiedni hak akcji, z którym możesz powiązać swoją własną funkcjonalność.

    Pomyślmy. Jeśli chcesz dodać ikonę ulubionych do zwykłej strony HTML, gdzie byś ją umieścił? Oczywiście musisz umieścić go w środku sekcja pliku HTML z następującym znacznikiem:

      

    Więc hak akcji, którego potrzebujesz, musi być związane z ładowaniem Sekcja.

    (1) Otwórz Action Reference i zobacz, co ma do zaoferowania. Mamy szczęście, ponieważ przeglądając akcje, możemy znaleźć tylko jeden, wp_head, który na podstawie jego nazwy może mieć związek z ładowaniem Sekcja.

    (2) Dla pewności sprawdź dokumentację w Codexie WordPress. Kodeks zaleca to “używasz tego haka, wysyłając echo funkcji do przeglądarki”, więc teraz wydaje się być dla nas idealny. Ale sprawdźmy to w kodzie źródłowym.

    (3) Ponieważ ten hak nie jest powiązany z obszarem administracyjnym, będziemy musieli uruchomić nasze wyszukiwanie w / wp-includes / teczka. Jeśli będziemy szukać słowa „wp-head”, otrzymamy wiele wyników, ponieważ ta konkretna akcja jest używana przez WP Core wiele razy.

    Musimy szukać miejsca, w którym zostanie zdefiniowane, więc szukaj wyrażenia do_action ('wp_head'. Zauważ, że nie ukończyliśmy nawiasów, ponieważ nie możemy być jeszcze pewni, czy ta akcja ma parametry, czy nie.

    Eclipse zwraca tylko jeden wynik, który można znaleźć wewnątrz /wp-includes/general-template.php plik. Komentarz przed definicją haka akcji mówi, że to “drukuje skrypty lub dane w nagłówku na przednim panelu”, więc teraz możemy być tego pewni wp_head to hak, którego potrzebujemy.

    Sprawdzanie parametrów

    Gdy dodasz własne działania, musisz również upewnić się, czy hak, którego chcesz użyć, ma parametry, czy nie. Możesz to łatwo znaleźć, patrząc na funkcję do_action ().

    Składnia funkcji do_action () jest następująca:

     do_action ('name_of_action' [, $ parametr1, $ parametr2,…]) 

    Wymagana jest tylko nazwa akcji, parametry są opcjonalne. Jeśli znajdziesz odpowiednie argumenty w wywołaniu funkcji do_action (), musisz umieść je w deklaracji tworzonej funkcji niestandardowej.

    Jeśli nie znajdziesz żadnego, Twoja funkcja niestandardowa musi działać bez argumentów. W definicji do hooka działania akcji wp_head nie ma żadnych parametrów.

    Porównajmy to z hakiem akcji, który przyjmuje parametr. Hak akcji o nazwie „wp_register_sidebar_widget” przyjmuje jeden parametr, który zawsze musisz przekazać do funkcji niestandardowej powiązanej z hakiem.

    Zobaczmy różnicę w składni do_action () dwóch przypadków:

     do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ widget);

    W pierwszym przypadku nie ma parametru, więc funkcja niestandardowa użyje następującej składni:

     funkcja my_function_without_parameters () … 

    W drugim przypadku istnieje jeden parametr, który zawsze musisz podać jako argument w deklaracji funkcji niestandardowej:

     funkcja my_function_with_parameters ($ widget) … 

    Jak podłączyć niestandardową funkcję

    Teraz wiemy wszystko, czego potrzebujemy. Stwórzmy naszą niestandardową funkcję, która wyświetli favicon na naszej stronie.

    Najpierw utwórz nową funkcję bez żadnych argumentów, a następnie połącz ją z hakiem akcji wp_head za pomocą funkcji WordPress add_action ().

     funkcja custom_add_favicon () echo ”';  add_action ('wp_head', 'custom_add_favicon');

    Musisz podaj nazwę haka akcji do funkcji add_action () jako argument jako pierwszy, wtedy musisz dodaj nazwę swojej funkcji niestandardowej.

    Są to dwa wymagane parametry add_action (). Ma również dwa opcjonalne parametry, priorytet i akceptowane argumenty. Zobaczmy, jak z nich korzystać.

    Określ priorytety

    W wielu przypadkach zdarza się, że z tym samym hakiem wiąże się więcej niż jedna akcja. Więc który zostanie wykonany jako pierwszy? Tutaj możemy korzystać z $ priorytet opcjonalny parametr funkcji add_action ().

    Dodajemy priorytet jako dodatnią liczbę całkowitą, wartością domyślną jest 10. Jeśli chcemy, aby akcja została wykonana wcześnie, dajemy jej niższą wartość, jeśli chcemy, aby była wykonywana później, nadajemy jej wyższą wartość.

    Jeśli więc uważamy, że favicon musi być tam wcześnie, możemy ulepszyć nasze poprzednie wywołanie add_action () w następujący sposób:

     add_action ('wp_head', 'custom_add_favicon', 5); 

    Pamiętaj, że priorytety zawsze muszą być ustawiona w stosunku do innych funkcji niestandardowych które używają tego samego haka akcji.

    Dodaj liczbę zaakceptowanych argumentów

    Musisz dodać liczbę akceptowanych argumentów w przypadku użycia haka akcji, który pobiera parametry. Zobaczmy przykład, którego użyliśmy wcześniej.

    Hak akcji „wp_register_sidebar_widget” przyjmuje jeden parametr, więc gdy powiązamy naszą funkcję niestandardową z tym hakiem, musimy również dołączyć to jako argument, gdy wywołamy funkcję add_action ().

    Nasz kod w tym przypadku będzie wyglądał następująco:

     function my_sidebar_widget_function ($ widget) // Twój kod add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1); 

    Pamiętaj, że musimy również dodaj priorytet (wybraliśmy tutaj domyślne 10), aby upewnić się, że WordPress wie, co oznacza każdy parametr. Jeśli pominiemy priorytet, WordPress może założyć, że priorytetem jest 1 co nie jest prawdą, ponieważ wskazuje liczbę zaakceptowanych argumentów.

    Wniosek

    Możesz dokonać wielu eksperymentów z hakami akcji w dostosowywaniu motywu. Na przykład możesz dodać własne skrypty (JS) i style (CSS) za pomocą haka akcji wp_enqueue_scripts lub kodu Google Analytics za pomocą haka akcji wp_footer.

    Nie tylko możesz dodaj własne działania, ale ty też możesz usuń pełne funkcje z rdzenia WordPress przy użyciu funkcji remove_action (), która używa tej samej logiki co add_action ().

    Jeśli jesteś autorem motywu i chcesz stworzyć motyw rozszerzalny, dobrym pomysłem może być dodaj własne haki akcji do odpowiednich plików szablonów z funkcją do_action ().

    Jeśli chcesz to zrobić, przemyśl dokładnie parametry, które inni programiści kto użyje twojego motywu będzie musiał przejść jako argumenty kiedy chcą podłączyć swoje niestandardowe funkcje.

    Przy projektowaniu lokalizacji niestandardowych akcji motywu nie zapomnij o tym nie ma sensu umieszczać niestandardowych haczyków motywów w tych samych miejscach, w których sam WordPress Core ma swoje własne haczyki.