Home » Articole » Articole » Calculatoare » Dezvoltarea web » WordPress » Cârlige și filtre WordPress

Cârlige și filtre WordPress

postat în: WordPress 0

Cârlige, acțiuni

Cârlige pentru WordPress

După ce funcția dvs. este definită, următorul pas este de a o „agăța” sau înregistra cu WordPress. Pentru aceasta, apelați add_action() în spațiul de execuție global al fișierului plugin:

add_action ( ‘hook_name’, ‘your_function_name’, [priority], [accepted_args] );

unde:

hook_name: Numele unui cârlig de acțiune oferit de WordPress, care spune cu ce eveniment trebuie să fie asociată funcția dvs.

your_function_name: Numele funcției care doriți să fie executată în urma evenimentului specificat de hook_name. Acest lucru poate fi o funcție standard php, o funcție prezentă în nucleul WordPress, sau o funcție definită de dvs. în fișierul modul (cum ar fi „email_friends” definit mai sus).

priority: Un argument întreg opțional utilizat pentru a specifica ordinea în care sunt executate funcțiile asociate cu o anumită acțiune (implicit: 10). Numerele mai mici corespund cu execuția mai devreme, și funcțiile cu aceeași prioritate sunt executate în ordinea adăugată la acțiune.

accepted_args: Un argument întreg opțional definind cât de multe argumente funcția poate accepta (implicit 1), util deoarece unele cârlige pot trece mai mult de un argument în funcție. Acest parametru este nou în versiunea 1.5.1.

Return Value: Valoarea (opțional modificată) din primul argument transmis funcției de filtrare. În exemplul de mai sus, am pune următoarea linie în fișierul modul:

add_action ( ‘publish_post’, ‘email_friends’ );

De asemenea, aveți posibilitatea să eliminați acțiunea din cârligele de acțiune.

Instalare și activare

Ultimul pas în funcționarea cârligului de acțiune este instalarea fișierul și activarea modulului. Funcția PHP scrisă și apelarea add_action trebuie să meargă într-un fișier PHP împreună, iar fișierul PHP trebuie să fie instalat în directorul wp-content/plugins. După ce este instalat, va trebui să accesați secțiunea admin a WordPress și să activați modulul.

Filtre

Filtrele sunt funcții prin care WordPress trece date, în anumite puncte ale execuției, chiar înainte de a începe o acțiune cu datele (cum ar fi adăugarea la baza de date sau trimiterea acestora la ecranul browser-ului). Filtrele sunt plasate între baza de date și browser (atunci când WordPress generează pagini), precum și între browser și baza de date (când WordPress adaugă noi postări și comentarii la baza de date); cele mai multe intrări și ieșiri în WordPress trec prin cel puțin un filtru. WordPress are unele filtre în mod implicit, și modulul poate adăuga propria filtrare.

Pașii de bază pentru a adăuga propriile filtre pentru WordPress (descrise în detaliu mai jos) sunt:

  1. Creați funcția PHP care filtrează datele.
  2. Agățați-o la filtru în WordPress, prin apelarea add_filter().
  3. Puneți funcția PHP într-un fișier modul, și activați.

Creați o funcție de filtru

O funcție de filtru are ca intrare datele nemodificate, și întoarce date modificate (sau, în unele cazuri, o valoare nulă pentru a indica faptul că datele ar trebui să fie șterse sau neluate în considerare). În cazul în care datele nu sunt modificate de filtru, atunci datele originale trebuie să fie returnate, astfel încât modulele ulterioare pot continua să modifice valoarea, dacă este necesar.

Deci, primul pas în crearea unui filtru în modul este de a crea o funcție PHP pentru a face filtrarea, și a o pune în fișierul modul (fișierul plugin trebuie să intre în directorul wp-content/plugins). De exemplu, dacă doriți să vă asigurați că mesajele și comentariile dumneavoastră nu conțin blasfemii, s-ar putea defini o variabilă cu o listă de cuvinte interzise, ​​și apoi să creați următoarea funcție PHP:

function filter_profanity( $content ) {
$profanities = array(‘badword’,’alsobad’,’…’);
$content = str_ireplace( $profanities, ‘{censored}’, $content );
return $content;
}

De ce merge aceasta fără o buclă? Deoarece $profanities este o matrice, și str_ireplace buclează prin matrice. Funcția str_ireplace este folosită în loc de str_replace deoarece str_ireplace este insensibilă la litere mari și mici.

NOTĂ: Rețineți că alte module sau nucleul WordPress pot folosi deja numele funcției la care v-ați gândit.

Cârlig în filtru

După ce ați definit funcția, următorul pas este de a o „agăța” sau înregistra cu WordPress. Pentru aceasta, apelați add_filter() în spațiul de execuție globală a fișierului plugin:

add_filter ( ‘hook_name’, ‘your_filter’, [priority], [accepted_args] );

unde:

hook_name: Numele unui cârlig filtru furnizat de WordPress, care definește când ar trebui să se aplice filtrul.

your_filter: Numele funcției pe care doriți să o utilizați pentru filtrare. Aceasta poate fi o funcție standard PHP, o funcție prezentă în nucleul WordPress, sau o funcție definită de dvs în fișierul plugin.

priority: Un argument întreg opțional care poate fi folosit pentru a specifica ordinea în care sunt executate funcțiile asociate cu un anumit filtru (implicit: 10). Numerele mai mici corespund cu execuția mai devreme, și funcții cu aceeași prioritate sunt executate în ordinea în care au fost adăugate la filtru.

accepted_args: Un argument întreg opțional definind cât de multe argumente funcția poate accepta (implicit 1), util deoarece unele cârlige pot trece mai mult de un argument pentru funcție.

In exemplul de mai sus, am pune următoarele în secțiunea principală de executare a fișierului plugin, pentru a spune lui WordPress să filtreze comentarii pentru blasfemie:

add_filter( ‘comment_text’, ‘filter_profanity’ );

De asemenea, puteți elimina filtrele de la cârligele de filtrul folosind funcția remove_filter().

Instalare și activare

Ultimul pas în funcționarea cârligului de filtrare este de a instala fișierul și a activa plugin-ul. Funcția PHP scrisă și apelarea add_filter() trebuie să meargă într-un fișier PHP împreună, și fișierul PHP trebuie să fie instalat în directorul wp-content/plugins. După ce este instalat, va trebui să accesați secțiunea admin de WordPress și să activa plugin-ul.

Exemplu

Acesta este un exemplu, așa cum este descris de către Ozh pe lista de discuții wp-hackers, a unui plugin pentru a modifica (sau suprascrie) funcția implicită bloginfo(). Acest lucru va necesita modificarea unui comportament al funcției de bază.

add_filter( ‘bloginfo’, ‘mybloginfo’, 1, 2 );
add_filter( ‘bloginfo_url’, ‘mybloginfo’, 1, 2 );

function mybloginfo( $result=”, $show=” ) {
switch ( $show ) {
case ‘wpurl’:
$result = SITE_URL;
break;
case ‘template_directory’:
$result = TEMPL_DIR;
break;
default:
}
return $result;
}

Eliminarea acțiunilor și filtrelor

În unele cazuri, s-ar putea să doriți ca modulul să dezactiveze una dintre acțiunile sau filtrele construite în WordPress, sau adăugate de un alt plugin. Puteți face acest lucru prin apelareaa remove_filter („filter_hook”, „filter_function”) sau remove_action („action_hook”, „action_function”).

De exemplu, remove_action (‘publish_post’, ‘generic_ping’); ar împiedica blogul să trimită ping ori de câte ori este creat un nou post.

Rețineți că dacă un cârlig a fost înregistrat cu ajutorul unei alte priorități decât cele 10 implicite, atunci trebuie să specificați și prioritatea în apelarea la remove_action(). De asemenea, rețineți că, în general, nu ar trebui să eliminați nimic dacă nu știți ce faceți si de ce o faceți – verificați WordPress sau orice alt cod sursă de modul pentru a fi sigur.

Funcții modulare

Pe lângă cârligele (acțiuni și filtre) descrise mai sus, un alt mod pentru un plugin de a modifica comportamentul WordPress este de a trece peste funcțiile WordPress. De fapt, există un mic set de funcții WordPress pentru module pentru redefinire. Acestea sunt numite Funcții modulare și sunt definite în wp-includes/pluggable.php. WordPress încarcă aceste funcții doar dacă acestea sunt încă nedefinite după ce toate modulele au fost încărcate.

Activare/Dezactivare/Dezinstalare

Dacă plugin-ul are sarcini de a finaliza doar la momentul activării sau dezactivării, se poate folosi și register_activation_hook și register_deactivation_hook. Multe plugin-uri nu au nevoie să le utilizeze, întrucât plugin-urile modifică numai comportamentul curent. Cu toate acestea, în cazul în care plugin-ul (de exemplu) trebuie să schimbe o opțiune implicită la activare, se pot utiliza aceste funcții.

register_uninstall_hook oferă modulului opțiunea de a curăța după sine atunci când este șters din instalația WordPress. Utilizatorii au motive să dezactiveze temporar plugin-uri uneori, astfel încât nu trebuie să faceți nimic cu cârligul de dezactivare prin care ați putea pierde vreo setare de utilizator. Pentru aceasta există cârligul de dezinstalare.

Traducere din wordpress.org

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *