Pagina principala » WordPress » Cum să utilizați cârligele de acțiune WordPress în personalizarea temelor

    Cum să utilizați cârligele de acțiune WordPress în personalizarea temelor

    Subiectele WordPress pentru copii oferă o modalitate relativ ușoară de a personaliza aspectul unei teme. Dacă opțiunile temei nu vă oferă opțiuni de design adecvate, puteți adăuga o nouă regulă la fișierul stilistic implicit al temei copilului numit style.css. Dar ce se întâmplă atunci când doriți, de asemenea modificați funcționalitatea temei? Acesta este unul dintre cazurile în care acțiunile WordPress vin în ajutorul dvs..

    WordPress a devenit atât de popular, datorită particularizării sale înalte. WordPress Core este încărcat cu diferite cârlige care permit dezvoltatorilor să modifice sau să îmbunătățească funcționalitatea implicită. Mai mult, ni se permite să includem cârlige personalizate în temele și pluginurile noastre ajutați alți dezvoltatori să ajusteze cu ușurință codul nostru la nevoile lor.

    Despre WordPress Hooks

    Cârligele WordPress funcționează oarecum asemănătoare cu cârligele din viața reală, în sensul că puteți prinde peștii pe care doriți la locul potrivit dacă le folosiți în mod corespunzător.

    Poti scoateți o funcție capturată (de exemplu, puteți elimina bara de administrare WordPress pentru utilizatorii de nivel scăzut), puteți lăsați-l intact și sporiți-l cu funcționalitatea proprie (de exemplu, puteți adăuga mai multe meniuri sau zone widget la o temă) sau puteți suprascrie-l (de exemplu, puteți modifica comportamentul unei funcții de bază).

    Există două tipuri diferite de cârlige în WordPress: acţiuni și filtre. În acest post vom arunca o privire la modul în care putem utilizați cârligele de acțiune în personalizarea temelor.

    Cum funcționează WordPress Hooks

    Pentru a utiliza un limbaj foarte simplu, acţiuni indicați acest lucru ceva sa întâmplat în timpul ciclului de viață al paginii WordPress: anumite părți ale site-ului au fost încărcate, au fost configurate anumite opțiuni sau setări, au fost inițializate pluginurile sau widget-urile și așa mai departe.

    Filtre sunt diferite de acţiuni în natura lor. Sunt obișnuiți cu asta treci datele prin, și modifica, gestiona sau intercepta înainte de redarea pe ecran sau salvarea datelor de utilizator în baza de date.

    La fiecare punct de reper important al ciclului de viață al paginii WordPress există fie un acțiune sau a filtru cârlig la care putem adăugați codul personalizat pentru a modifica comportamentul implicit la nevoile noastre.

    Anumite acțiuni și filtre care rulează în timpul unei solicitări depind de ce pagină a fost solicitată de agentul utilizator: de exemplu într-o singură solicitare de post, sunt disponibile cârlige legate de mesaje individuale, dar cârlige legate de alte părți ale site-ului (de exemplu zona de administrare) nu sunt.

    Găsiți cârlige de acțiune

    Referința de acțiune a Codului WordPress oferă o prezentare detaliată a acțiunilor care rulează prin cereri diferite. Important este că dacă vrem să îndeplinim o sarcină, trebuie să o facem cârlig în locul potrivit, nu înainte sau după, altfel acțiunea nu va fi finalizată.

    Deci, de exemplu, dacă vrem adăugați codul nostru Google Analytics la un site avem nevoie să închideți acțiunea chiar înainte de încărcarea subsolului.

    Dacă vorbim despre personalizarea temelor, cârligele de acțiune pot veni din două locuri diferite: de la WordPress Core și tema în sine. Există teme care nu au cârlige, dar altele oferă dezvoltatorilor unele sau multe - este întotdeauna alegerea autorului temei. Implicit Twenty Fifteen Tema are un singur cârlig de acțiune pentru personalizarea subsolului sub numele de "twentyfifteen_credits".

    Dacă doriți să răsfoiți codul sursă, puteți găsi și cârlige de acțiune cu ușurință. Cârligele de acțiune sunt adăugate la cod cu funcția do_action () WordPress.

    Dacă executați o căutare rapidă a expresiei "do_action" într-un editor de coduri mai avansate - așa cum am făcut în Eclipse de mai jos - puteți vedea o listă cu privire la locurile în care vă puteți conecta funcționalitatea personalizată în miez. Am căutat în / Wp-includes / folder, dar puteți, de asemenea, să executați o căutare pentru / Wp-admin / folder care conține cârligele de acțiune legate de tabloul de bord WordPress (zona admin).

    Cel mai bun lucru este că numele cârligelor de acțiune sunt de obicei destul de explicative, dar există de obicei un comentariu frumos în interiorul codului care vă poate oferi mai multe cunoștințe dacă cârligul de acțiune dat este bun pentru motivul pentru care doriți să-l utilizați.

    De exemplu, comentariul de cod înainte de cârligul de acțiune "widgets_init" spune că acesta “incendii după ce toate widget-urile WordPress implicite au fost înregistrate”. Dacă faceți o vizionare a codului înaintea acestui cârlig de acțiune, puteți găsi toate inițialele implicite WP widget-uri înaintea lui - astfel încât să puteți fi sigur că comentariul nu a mințit și dacă doriți să vă înregistrați propriul widget personalizat, acesta va fi locul potrivit.

    În multe cazuri, codul sursă ne oferă mai multe informații decât Codex-ul, deci poate fi o idee bună să înveți cum să navighezi rapid în el.

    Adăugați acțiunile proprii

    Când doriți să adăugați o acțiune proprie, trebuie să o faceți creați o funcție personalizată și legați această funcție de un cârlig de acțiune specific utilizând funcția add_action () WordPress. Acțiunile personalizate adăugate cu funcția add_action () sunt de obicei declanșat la fața locului când nucleul apelează funcția corespunzătoare do_action ().

    Să vedem un exemplu simplu.

    Cum să găsiți cârligul de acțiune de care aveți nevoie

    Să presupunem că doriți să adăugați faviconul personalizat pe site-ul dvs. În primul rând, trebuie să găsiți cârligul de acțiune potrivit pe care îl puteți lega de funcționalitatea proprie.

    Să ne gândim. Dacă ați vrut să adăugați un favicon la o pagină HTML simplă în care ați fi pus-o? Desigur, trebuie să o plasați înăuntru secțiune a fișierului HTML cu următorul marcaj:

      

    Deci, cârligul de acțiune de care aveți nevoie trebuie să fie legate de încărcarea secțiune.

    (1) Deschideți Referința de acțiune și vedeți ce are de oferit. Suntem norocoși, ca și cum am răsfoi prin acțiuni, putem găsi doar unul, wp_head, care bazându-se pe numele său are posibilitatea de a fi legate de încărcarea secțiune.

    (2) Sigur, hai să mergem verificați documentația din Codul WordPress. Codul recomandă acest lucru “utilizați acest cârlig prin faptul că funcția dvs. va ieși ecou în browser”, așa că acum se pare că este perfect pentru noi. Dar să verificăm codul sursă.

    (3) Deoarece acest cârlig nu are legătură cu zona de administrare, va trebui să rulați căutarea în / Wp-includes / pliant. Dacă căutăm cuvântul "wp-head", vom obține multe rezultate deoarece această acțiune specifică este folosită de WP Core de mai multe ori.

    Trebuie să căutăm locul unde se definește, așa că căutați expresia do_action ('wp_head'. Rețineți că nu am terminat parantezele, deoarece nu putem fi siguri că această acțiune are parametri sau nu.

    Eclipse returnează numai un rezultat care poate fi găsit în interiorul lui /wp-includes/general-template.php fişier. Comentariul înaintea definiției cârligului de acțiune spune că acesta “imprimă scripturi sau date în eticheta capului de pe front”, așa că acum putem fi siguri de asta wp_head este cârligul de acțiune de care avem nevoie.

    Verificarea parametrilor

    Când adăugați propriile acțiuni, trebuie să fiți sigur că dacă cârligul pe care doriți să îl utilizați ia parametrii sau nu. Puteți găsi cu ușurință acest lucru prin uitarea funcției do_action ().

    Sintaxa funcției do_action () este următoarea:

     do_action ('name_of_action' [, $ parametru1, $ parametru2, ...]) 

    Numai numele acțiunii este necesar, parametrii sunt opționali. Dacă găsiți argumente în apelul relevant al funcției do_action (), trebuie să includeți-i în declarația funcției personalizate pe care o creați.

    Dacă nu găsiți niciunul, atunci funcția personalizată trebuie să funcționeze fără argumente. În definiția do_action () a cârligului de acțiune wp_head, nu există parametri.

    Să o comparăm cu un cârlig de acțiune care are un parametru. Cârligul de acțiune denumit "wp_register_sidebar_widget" are un parametru pe care trebuie să-l treci întotdeauna la funcția personalizată pe care o obligați la cârlig.

    Să vedem diferența în sintaxa do_action () a celor două cazuri:

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

    În primul caz nu există parametru, astfel încât funcția personalizată va utiliza următoarea sintaxă:

     funcția my_function_without_parameters () ... 

    În cel de-al doilea caz, există un parametru pe care trebuie să-l treci întotdeauna ca argument în declarația funcției personalizate:

     funcția my_function_with_parameters ($ widget) ... 

    Cum să vă cuplați funcția personalizată în

    Acum știm tot ce avem nevoie. Să creați funcția personalizată care va afișa un favicon pe site-ul nostru.

    Mai întâi, creați o nouă funcție fără argumente, apoi legați-o la cârligul de acțiune wp_head cu ajutorul funcției add_action () WordPress.

     funcția custom_add_favicon () echo '„;  add_action ('wp_head', 'custom_add_favicon');

    Trebuie să treceți numele a cârligului de acțiune la funcția add_action () ca un argument în primul rând, atunci trebuie să adăugați numele funcției personalizate.

    Acestea sunt cei doi parametri necesari ai add_action (). Are și doi parametri opționali, prioritate și acceptate argumente. Să vedem cum să le folosim.

    Definirea priorităților

    Se întâmplă în multe cazuri că există mai multe acțiuni legate de același cârlig. Asa de care va fi executat mai întâi? Aici putem folosi $ parametru opțional prioritar din funcția add_action ().

    Adăugăm prioritatea ca număr întreg pozitiv, valoarea implicită fiind 10. Dacă vrem ca o acțiune să fie executată devreme, îi dăm o valoare mai mică, dacă vrem să fie executată mai târziu, îi dăm o valoare mai mare.

    Deci, dacă credem că faviconul trebuie să fie acolo devreme, putem îmbunătăți apelul nostru precedent add_action () în felul următor:

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

    Rețineți că prioritățile trebuie întotdeauna să fie setat relativ la celelalte funcții personalizate care utilizează același cârlig de acțiune.

    Adăugați numărul de argumente acceptate

    Vi se cere să adăugați numărul de argumente acceptate în cazul în care utilizați un cârlig de acțiune care are parametri. Să vedem exemplul pe care l-am folosit înainte.

    Cârligul de acțiune "wp_register_sidebar_widget" are un parametru, așa că atunci când legăm funcția noastră personalizată cu acest cârlig, trebuie să includem și acest argument ca argument atunci când apelam funcția add_action ().

    Codul nostru în acest caz va arăta astfel:

     funcția my_sidebar_widget_function ($ widget) // Codul dvs. add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1); 

    Rețineți că trebuie adăugați și prioritatea (am ales implicit 10 aici) pentru a vă asigura că WordPress știe ce înseamnă fiecare parametru. Dacă am omite prioritatea, WordPress ar putea presupune că 1 este prioritatea ceea ce nu este adevărat, deoarece indică numărul de argumente acceptate.

    Concluzie

    Puteți face multe experimente cu cârlige de acțiune în personalizarea temelor. De exemplu, puteți adăuga script-urile personalizate (JS) și stilurile (CSS) cu cârligul de acțiune wp_enqueue_scripts sau cu codul Google Analytics cu cârligul de acțiune wp_footer.

    Nu numai că puteți adăugați propriile acțiuni, dar puteți, de asemenea eliminați funcționalitățile complete din nucleul WordPress cu utilizarea funcției remove_action () care utilizează aceeași logică ca add_action ().

    Dacă sunteți autor de temă și doriți să faceți o temă extensibilă, poate fi o idee bună adăugați propriile cârlige de acțiune personalizate la fișierele șablon corespunzătoare cu funcția do_action ().

    Dacă doriți să faceți acest lucru, gândiți-vă cu atenție la parametrii pe care ceilalți dezvoltatori le au care va folosi tema va trebui să treacă drept argumente atunci când doresc să creeze funcționalitățile lor personalizate.

    În timp ce proiectați locațiile cârligelor de acțiune ale temelor dvs., nu uitați că acestea nu are sens să includă cârlige tematice personalizate în aceleași locuri unde WordPress Core are propriile cârlige.