Funcțiile WordPress add_filter vs add_action, elementele de bază.

Publicat: 2021-08-24

Dezvăluire: Această postare conține linkuri afiliate. Este posibil să primesc compensații atunci când dați clic pe link-urile către produse din această postare. Pentru o explicație a Politicii mele de publicitate, vizitați această pagină . Multumesc pentru lectura!

Cuprins

  • Care sunt funcțiile WordPress add_filter vs add_action?
  • Deci, ce este exact un „Cârlig” în WordPress?
  • Care este diferența dintre cârlige, filtre și acțiuni?
  • Care este diferența dintre do_action și add_action în WordPress?
  • Care este diferența dintre cârligele de acțiune și cârligele de filtrare?
  • Ce fac filtrele în WordPress?
  • Ce fac acțiunile în WordPress?
  • Pot folosi un add_action înainte de add_filter când modific un plugin WordPress?
  • Deci, care este diferența reală dintre add_filter hooks și add_action hooks în WordPress?

Care sunt funcțiile WordPress add_filter vs add_action?

Ați primit vreodată un plugin sau o temă care ar fi perfectă dacă ați putea face doar una sau două modificări? Cu toate acestea, aceste două modificări vă vor necesita doar să adăugați un pic de cod, poate chiar un cod scurt.

Dar înainte de a o face, trebuie să înțelegeți conceptele de bază ale add_filter vs add_action, diferențele și modul în care funcționează în WordPress înainte de a transforma un plugin sau o temă aproape perfect codificată într-o mizerie completă.

Un „add_action” în WordPress este ceea ce utilizați pentru a crea un „hook” de declanșare. Când se întâmplă ceva, atunci fă-altceva.

Un „add_filter” este folosit pentru a „conecta” datele, adică pentru a schimba/înlocui. De exemplu, unde există [some-code], schimbați-l în some-alt-expanded-code.

„Cârligul” este o „funcție” sau „metodă” pentru un anumit filtru sau acțiune. Mai multe despre „cârlige” de mai jos.

WordPress oferă cârlige de filtrare pentru a permite pluginurilor să modifice diferite tipuri de date interne în timpul rulării. Un plugin poate modifica datele legând un apel invers la un cârlig de filtru. Când filtrul este aplicat ulterior, fiecare apel invers legat este rulat în ordinea priorității și are posibilitatea de a modifica o valoare returnând o nouă valoare.

  • Acțiunile sunt acele funcții PHP care execută rezultatul.
  • Filtrele sunt acele funcții PHP care returnează rezultatul.

Putem extinde orice plugin care utilizează acțiunile și filtrele fără a le modifica codul. Prin adăugarea de filtre și acțiuni în propria noastră temă sau plugin. Să intrăm în mai multe despre cum funcționează acestea în WordPress.

Deci, ce este exact un „Cârlig” în WordPress?

Cârligele sunt o modalitate prin care o bucată de cod poate interacționa/modifica o altă bucată de cod în locuri specifice, predefinite. Ele stau la baza modului în care pluginurile și temele interacționează cu WordPress Core, dar sunt, de asemenea, utilizate pe scară largă de WordPress Core în sine.

Există două tipuri de cârlige: acțiuni și filtre. Pentru a utiliza oricare dintre acestea, trebuie să scrieți o funcție personalizată cunoscută sub numele de „ Apel invers ”, apoi să o înregistrați cu un cârlig WordPress pentru o anumită acțiune sau filtru. Sursa: WordPress.org .

Care este diferența dintre cârlige, filtre și acțiuni?

După cum am menționat mai sus, „cârlige” este, practic, numele colectiv pentru filtre și acțiuni. Ambele sunt menite să schimbe comportamentul normal al funcțiilor.

Vorbind din punct de vedere programatic, nu există nicio diferență mare, așa cum puteți vedea din faptul că în codul sursă WordPress adăugarea unei „acțiuni” este același lucru cu adăugarea unui „filtru”.

Diferența constă în modul în care sunt folosite. Folosiți o „acțiune” pentru a schimba complet comportamentul unei funcții sau pentru a adăuga ceva la o funcție existentă.

Folosiți un „filtru” pentru a modifica rezultatul unei funcții sau al unei variabile.

Care este diferența dintre do_action și add_action în WordPress?

Un „do_action” înregistrează un „action hook”, în timp ce „add_action” adaugă o funcție de apel invers la hook-ul înregistrat.

Care este diferența dintre cârligele de acțiune și cârligele de filtrare?

Cârlige de acțiune

„Cârligele de acțiuni” sunt destinate utilizării atunci când nucleul WordPress sau un plugin sau o temă vă oferă posibilitatea de a introduce codul la un anumit punct din al lor pentru a executa o anumită sarcină sau „acțiune”.

Cârlige de filtrare

„Filter Hooks” se comportă foarte asemănător cu „Action Hooks”, dar scopul lor este de a primi o valoare și, eventual, de a returna o versiune modificată a valorii.

Un „Filter Hook” ar putea fi, de asemenea, folosit la fel ca un „Action Hook”, adică pentru a modifica o variabilă globală sau pentru a genera HTML, presupunând că asta trebuie să faceți când este apelat hook-ul.

Ce fac filtrele în WordPress?

Un „filtru” preia informațiile pe care le primește, le modifică și le returnează. Cu alte cuvinte, filtrează ceva și îl transmite înapoi cârligului pentru utilizare ulterioară.

Prin urmare, un filtru este folosit pentru a modifica ceva într-un mod specific, astfel încât modificarea să fie apoi folosită de cod mai târziu.

Ce fac acțiunile în WordPress?

O „acțiune” preia informațiile pe care le primește, execută orice instrucțiuni care sunt date în codificare, apoi nu returnează nimic. Practic, acționează asupra a ceva și apoi iese, fără a returna nimic înapoi la cârligul de apelare.

O acțiune întrerupe fluxul de cod pentru a face ceva și apoi revine la fluxul normal fără a modifica nimic.

Deci, acolo unde „filtrele” sunt seturi de parametri sau instrucțiuni, „acțiunile” sunt execuția instrucțiunilor.

Pot folosi un add_action înainte de add_filter când modific un plugin WordPress?

Practic, nu contează în ce ordine utilizați add_action() și add_filter().

Ceea ce contează este ordinea în care sunt apelate do_action() și apply_filters() corespunzătoare.

Deci, dacă „apply_filters”, de exemplu, ('wp_insert_post_data') este rulat înainte de „do_action”('save_post'), atunci nu va funcționa. Va trebui să te gândești la o altă modalitate de a obține rezultatele pe care le urmărești.

Deci, care este diferența reală dintre add_filter hooks și add_action hooks în WordPress?

În realitate, „Filter Hooks” sunt aproape un superset de „Action Hooks”. „Filter Hooks” poate face orice poate „Action Hooks” și ceva mai mult. Deși dezvoltatorul nu are responsabilitatea de a returna o valoare cu un „Cârlig de acțiune”, pe care o face cu un „Cârlig de filtru”.

„Filter hooks” definesc practic parametrii unei sarcini, în timp ce „Action hooks” execută sarcini. Pentru mai multe informații despre diferențele dintre cârligele „add_filter” și cârligele „add_action”, consultați această documentație oficială WordPress în secțiunea pentru dezvoltatori de pe WordPress.org.