Partea Engel

Deoarece aceasta este prima mea experiență de traducere a textelor tehnice mari, sunt disponibile bloopers. Orice corecție va fi acceptată cu bucurie;)

Traducerea sub tăiere.

Scrierea unui plugin

Până la versiunea WordPress 1.2, dacă doriți să schimbați comportamentul, a trebuit să modificați (sau "hack") codul sursă al WordPress. Cu toate acestea, în majoritatea versiunilor curente ale WordPress, puteți să modificați cu ușurință funcționalitatea kernelului WordPress sau să adăugați unul nou folosind pluginurile. Ideea de bază a utilizării unei arhitecturi extensibile este menținerea kernelului relativ simplu, dar suficient de flexibil, fiecare aspect al intrării și ieșirii acestuia putând fi schimbat cu plug-in-uri. Iată definiția:







WordPress plug-in - este un program sau un set de funcții scrise în PHP, care adaugă un anumit set de caracteristici sau servicii la un blog pe WordPress, care pot fi ușor combinate cu controlul și metodele de utilizare a sistemului WordPress Plugin Application Program Interface (API).

Plugin Resources - o listă cuprinzătoare de articole și instrumente pentru dezvoltatorii plug-in, care include articole detaliate despre scrierea plug-in-urilor și articole despre anumite subiecte "înguste".

O altă modalitate bună de a învăța pluginurile dispozitivului este să te uiți la codul sursă PHP al plug-in-urilor bine scrise, cum ar fi Hello Dolly. plug-in, care este inclus în oferta de bază a WordPress.

Dacă ați scris un plugin pentru WordPress, citiți Plugin Submission and Promotion. Pentru a afla cum să distribuiți plugin-ul.

Crearea unui plugin

Această parte a articolului vă va informa ce pași trebuie să faceți pentru a crea un plug-in bun.

Numele, fișierele și locațiile fișierelor

Numele pluginului

Prima sarcină atunci când creați un plug-in este să vă gândiți ce va face plug-in-ul și să veniți cu un nume pentru el (de preferință unic). Verificați pluginurile și alte depozite pentru a vă asigura că numele pe care l-ați inventat este unic; puteți, de asemenea, să vă numiți numele Google. Majoritatea dezvoltatorilor plug-in aleg nume care reflectă funcționalitatea plug-in-ului; De exemplu, pluginul pentru afișarea timpului poate avea cuvântul "vreme" în titlu. Numele poate conține mai multe cuvinte. (Firește, pluginul dvs. ar trebui să aibă un nume în limba engleză.)

Fișierele Plugin

Următorul pas este să creați un fișier PHP cu un nume derivat din numele pluginului. De exemplu, dacă pluginul dvs. este numit Funcționalitate fabuloasă, puteți numi fișierul fabfunc.php. Din nou, încercați să creați un nume unic. Persoanele care instalează plugin-ul dvs. vor pune acest fișier în directorul lor pentru wp-content / plugins / plugins și două plug-in-uri pe care o persoană le utilizează pot avea același nume de fișier.

În acest articol, "fișierul plug-in PHP" înseamnă fișierul principal PHP, care se află în directorul pentru plug-in-uri sau subdirectorul acestuia.

Fișierul "Citiți-mă" (citiți-mă)
Pagina principală

De asemenea, este foarte convenabil să creați o pagină web care să acționeze ca "pagina de pornire" a plug-in-ului dvs. Această pagină ar trebui să explice cum să instalați plug-in-ul, ce face, ce versiuni de WordPress sunt compatibile, ce se schimbă de la o versiune la o versiune a plug-in-ului dvs. și cum se utilizează plug-in-ul.

Anteturi de fișiere

Este timpul să oferiți câteva informații despre fișierul dvs. principal PHP.

Informații standard despre plugin

Începutul fișierului dvs. trebuie să conțină un antet de informații standard. Acest antet permite WordPress să înțeleagă că există plugin-ul dvs., să îl adăugați la panoul de control al plug-in-urilor în cazul în care acesta poate fi activat, să-l încărcați și să-i executați funcțiile; fără un titlu, plugin-ul dvs. nu va fi niciodată activat și rulat. Acesta este formatul antetului:

(bineînțeles, totul ar trebui să fie în limba engleză - nota unui interpret)

Informațiile minime pe care WordPress trebuie să le găsească este numele lor (numele de plugin). Restul informațiilor (dacă există) sunt folosite pentru a crea un tabel plug-in pe pagina de gestionare a pluginurilor. Ordinea liniilor nu este importantă.

Antetul standard urmează, de obicei, informațiile despre licență pentru plug-in. Majoritatea pluginurilor utilizează o licență GPL sau o licență compatibilă cu GPL. Pentru a specifica licența GPL, adăugați următoarele fișiere în fișierul pluginului:

Programarea pluginului

Este timpul să forțați plug-in-ul să facă ceva. Această parte a articolului conține mai multe idei de bază pentru dezvoltarea de plug-in-uri și explică modul de a aduce la perfecțiune mai multe sarcini pe care plug-in-ul dvs. le va face.

Plug-in "Hooks"

Multe pluginuri își îndeplinesc sarcinile prin conectarea la una sau mai multe "capcane". "Capcane" funcționează în timp ce rulează WordPress. WordPress verifică dacă mai multe pluginuri au aceleași funcții înregistrate și dacă da, funcțiile sunt pornite. Aceste funcții schimbă comportamentul standard al WordPress.

De exemplu, înainte de a adăuga WordPress post-antet în concluzie browser-ului, se verifică mai întâi dacă o funcție înregistrată plug pentru „sita“ intitulat „the_title“. În caz contrar, textul antetului este trecut prin fiecare funcție înregistrată și rezultatul final este ieșit. Astfel, în cazul în care dvs. de plugin trebuie să adăugați câteva informații la titlul postului, el poate înregistra un filtru funcție «the_title».

Un alt exemplu este o "capcană activă" numită "wp_footer". Înainte de sfârșitul paginii HTML pe care WordPress o generează, verifică dacă orice plug-inuri au o funcție "wp_footer" înregistrată și o lansează.

Puteți afla mai multe despre cum să înregistrați funcțiile pentru filtre și "capcane" și care "capcane" sunt disponibile în WordPress, în API-ul Plugin. Dacă găsiți un loc în codul WordPress unde doriți să aveți o acțiune sau un filtru, dar în WordPress nu există, puteți oferi noi "capcane" (sugestiile sunt acceptate în mare parte); cum se face, puteți afla în Raportarea bug-urilor.

Etichete de șablon

Un alt mod de a adăuga funcționalitate cu plugin-ul este de a crea etichete de șablon. Oricine dorește să utilizeze plugin-ul poate adăuga aceste etichete în tema în panoul, în secțiunea de conținut poștă sau la alt loc similar. De exemplu, un plugin care adaugă geoetichete la posturi pot fi definite funcție de șablonul pe etichete cu numele geotag_list_states () din panou, care este o listă cu toate posturile tagged-geo-tag, cu referire la arhiva de pagini plugin.

Pentru a declara o etichetă șablon, trebuie doar să scrieți funcția php și să o documentați pentru utilizatorii plugin-ului pe pagina dvs. de plug-in și / sau în fișierul principal de plugin. O idee bună atunci când documentați o funcție este de a da un exemplu de execuție care conține , pe care trebuie să le adăugați la subiect pentru a obține rezultatul.







Salvați datele pluginului în baza de date

Majoritatea pluginurilor primesc unele informații de la proprietarul blogului sau de la utilizatorii lor pentru a fi utilizate în filtre, funcții de lucru și funcții de șablon care trebuie să fie stocate între sesiuni. Aceste informații necesită salvarea în baza de date WordPress pentru o perioadă lungă de timp între sesiuni. Iată două metode principale de salvare a datelor în baza de date:

WordPress Options Engine

WordPress are un mecanism de salvare, actualizare și recuperare a numelor seturi de date (setări) numite în baza de date WordPress. Valorile setărilor pot fi șiruri, matrice sau obiecte PHP (acestea vor fi serializate sau convertite într-un șir înainte de a scrie, și rasseziralizovany înainte de extragere). Numele setărilor sunt șiruri de caractere și trebuie să fie unice, astfel încât să nu interfereze cu WordPress sau alte plug-in-uri.

Iată principalele funcții pe care plug-in-ul dvs. le poate utiliza pentru a accesa setările WordPress:

add_option ($ nume, valoare $, descriere $, $ autoload);

Creează o nouă setare; Nu faceți nimic dacă opțiunea există deja.

  • $ name - este necesar (șir). Numele setării.
  • $ value - optional (șir), implicit un șir gol. Valoarea setării.
  • $ description - opțional (șir), implicit un șir gol. Descrierea setării din baza de date, astfel încât oricine care navighează în baza de date înțelege ce este această setare.
  • $ autoload - opțional, implicit - "da" ("da" sau "nu"). Dacă este setat la "da", setările sunt preluate automat de funcția get_alloptions.

Extrage valoarea setării din baza de date.

  • Opțiunea $ - necesară (șir). Numele setării pe care doriți să o regăsiți.

Actualizează sau creează o valoare pentru setarea din baza de date (nota: add_option nu poate fi apelat fără a utiliza parametrii $ description sau $ autoload).

  • $ option_name - este necesar (șir). Numele setării pentru actualizare.
  • $ newvalue - necesară. O nouă valoare de setare.
Panoul de administrare

Cu condiția ca plugin-ul are unele opțiuni care sunt stocate (a se vedea secțiunea de mai sus.) În baza de WordPress, veți dori, probabil, să aibă panoul de administrare, care permite utilizatorilor să vizioneze și să editeze setările plugin. Metodele de creare a panourilor sunt descrise în meniurile Adăugare de administrare.

Interfațare pentru internaționalizare

După ce ați terminat de scris pluginul, trebuie să fie internaționalizat (presupunând că intenționați să distribuiți plugin-ul dvs.). Internaționalizarea este procesul de instalare a software-ului pentru localizare; Localizarea este procesul de traducere a textului afișat de program în diferite limbi. WordPress este folosit în întreaga lume, iar internaționalizarea și localizarea sunt construite în structura sa, inclusiv localizarea plugin-urilor. WordPress utilizează "GNU gettext" pentru localizare (a se vedea Translația WordPress).

Este recomandat să internaționalizați plugin-ul, astfel încât să se poată localiza persoane din diferite țări. Procesul este simplu:

  • Selectați numele spațiului de traducere pentru plugin-ul dvs. Acesta este de obicei același cu numele fișierului principal al plug-in-ului dvs. (numai fără .php). Numele trebuie să fie unic.
  • Oriunde plug-in-ul dvs. utilizează linii de text care vor fi afișate utilizatorului (cunoscute sub numele de "mesaje"), le includeți într-una din cele două funcții Gettext WordPress. Rețineți că în pluginul dvs. trebuie să utilizați al doilea argument - numele spațiului de traducere pe care l-ați selectat (acest argument este lăsat în kernelul WordPress).

Traduce mesajul $ utilizând locația curentă pentru domeniul $. Plasați liniile pe care doriți să le utilizați în calcule în această funcție.

Traduce mesajul $ utilizând locația curentă pentru domeniul $. Puneți în această funcție liniile care vor fi prezentate utilizatorului.

$ fabfunc_domain = 'fabfunc';
$ fabfunc_is_setup = 0;
funcția fabfunc_setup ()
globale $ fabfunc_domain, $ fabfunc_is_setup;
dacă ($ fabfunc_is_setup) se întoarce;
>
load_plugin_textdomain ($ fabfunc_domain, 'wp-content / plugins');
>

Dacă plugin-ul dvs. se află în subdirectorul propriu, atașați numele acestuia la al doilea argument al funcției load_plugin_textdomain.

Sfaturi pentru dezvoltarea unui plugin

Aceasta este ultima parte a articolului, care include diferite sfaturi pentru dezvoltarea pluginului.

  1. Codul plug-in trebuie să respecte standardele de codare WordPress. Vă rugăm să țineți cont de standardele Documentației Inline.
  2. Toate funcțiile pluginului dvs. trebuie să aibă nume unice, diferite de numele funcțiilor kernelului WordPress, ale altor plugin-uri sau teme. Din acest motiv, este o idee bună să utilizați un prefix unic pentru numele funcțiilor pluginului. O altă posibilitate este să vă declarați funcțiile într-o clasă (care trebuie să aibă și un nume unic).
  3. Nu utilizați în mod explicit prefixul de bază WordPress (de obicei wp_) în pluginul dvs. În schimb, utilizați prefixul $ wpdb->
  4. Citirea bazei de date este un proces ușor, însă intrarea în baza de date este complicată. Bazele de date sunt extrem de bune la colectarea și emiterea datelor, aceste operațiuni fiind efectuate de obicei rapid. Efectuarea modificărilor în baza de date este un proces mai complex, deci este mai intensă din punct de vedere al resurselor. Ca rezultat, încercați să reduceți numărul de intrări în baza de date. Păstrați totul gata în cod, apoi puteți face numai aceste înregistrări în baza de date care sunt cu adevărat necesare.
  5. Selectați din baza de date cu SELECT numai ceea ce aveți nevoie. Chiar dacă bazele de date extrag datele destul de repede, puteți reduce încărcarea bazei de date selectând doar datele de care aveți nevoie. Dacă trebuie să numărați numărul de rânduri într-un tabel, nu folosiți SELECT * FROM, deoarece toate datele din toate rândurile vor ocupa memoria. În mod similar, dacă aveți nevoie numai de post_id și post_author în pluginul dvs., selectați numai câmpuri specifice prin SELECT pentru a reduce sarcina. Amintiți-vă: sute de alte procese pot accesa baza de date simultan cu dvs. Baza de date și serverul pot aloca resurse între procese. Aflați cum să minimalizați tratamentul plug-in-ului dvs. în baza de date pentru a vă asigura că pluginul dvs. nu abuzează de resurse.

Următoarea traducere din ALA? ;) Vă rugăm ...

Mă exploatezi :)

Vom vedea, de fapt. Am încercat să traduc câteva articole ale colegilor mei vorbitori de engleză, dar dragostea lor față de jargonism împiedică puternic -)

"Hooks" are multe opțiuni pentru traducere - "cârlig", "captură".
În programul de programare win api, "Hooks" se traduce ca "hook" sau "trap" și aici este definiția sa: un mecanism în Windows care permite unei aplicații să proceseze unele mesaje înainte de a fi trimise spre procesare.

Multe mulțumiri pentru explicație! Am găsit definiția în dicționarul tehnic englez, dar în dicționarele rusești - tăcere - (

Optimal probabil cuvântul "capcane", deoarece acestea sunt doar proiectate pentru a intercepta, "prinde" evenimente.

Da, acesta a fost primul lucru care mi-a venit în minte.

În traducerea notei la update_option ($ option_name, $ newvalue);
O eroare a apărut din cauza acestei descrieri, care contrazice add_option-urile de mai sus ($ name, $ value, $ description, $ autoload); unde parametrii $ description și $ autoload sunt specificați ca opțional. În mod logic, traducerea ar trebui să fie: "Rețineți că add_option nu trebuie să fie apelat dacă nu doriți să utilizați parametrii $ description și $ autoload"

O să scriu plugin-ul meu. Informațiile dvs. au fost cele mai interesante. Mulțumesc.

Da, informațiile sunt utile. Cred că aceasta este abordarea corectă - să scriu plug-in-uri, și nu ceea ce fac (Kurochu WP din interior) ... :)

mulțumesc, m-am dus să scriu :)

Vsenda a vrut să scrie plug-in-ul, să citească articolul ... și am înțeles că nu reușesc :(

Vă mulțumim pentru lucrurile minunate pentru tine! Voi fi oaspetele dvs. frecvent)

funcția widget_freshnews ($ postcat)
global $ wpdb;

register_sidebar_widget ("Fresh News", "widget_freshnews");

widget-urile sunt înregistrate și înregistrate în funcțiile de design.php, widget-ul este inclus în widget-urile de proiectare

În sfârșit, primul manual explicativ pentru crearea pluginurilor în limba rusă.

Foarte informativ. Mulțumesc.

Și nu este rușine? a rupt întregul articol din codul tradus codex.wordpress. Ești -1.

Ei bine, există traducerea mea :)

traducerea nu este foarte, puteți vedea limba burgheză

Eu nu sunt un interpret și nu mă prefac.

dar totuși aveți articole bune, am fost ajutat la un moment dat))

Și nu aveți o translatare accidentală pentru a crea o parte admin a plug-in-ului?

$ value = "salut-lume";
$ nume = "hwlink";
add_option ($ nume, $ valoare, null, "da");

Dacă execut această funcție, nu stabilește o nouă valoare în baza de date. Nu știu ce ar putea fi eroarea sau pot să fac ceva în neregulă cu parametrii?

Din păcate, nu știu. Nu am facut wordpress de mult timp.

Ea este acolo, pentru că aceasta este traducerea mea. Nu am scris plug-in-uri pentru o lungă perioadă de timp, așa că Google vă ajută.

Mulțumesc, de mult timp am vrut să scriu propriile plug-in-uri pentru wp

Corectați eroarea în traducerea site-ului codex.wordpress.org: "Principiul acțiunilor sale este ..."

O minune, dar ochii i se taie. Ne pare rău, dacă ați scris deja. Nu știu unde să scriu - s-au dezabonat aici.

resurtm, din păcate, nu am adăugat traducerea în cod și nu am dreptul să o schimb.

Vă mulțumim pentru munca făcută pentru a traduce astfel de informații valoroase. Pts a ajutat :)







Articole similare

Trimiteți-le prietenilor: