Ghid pas cu pas: Cum sa dezvolți un plugin WordPress

268
plugin WordPress

Cum sa dezvolți un plugin WordPress Pluginurile WordPress vă permit să modificați, personalizați și îmbunătățiți cu ușurință un site WordPress. În loc să schimbați codul programului de bază al WordPress, puteți adăuga funcționalitate cu WordPress Plugins. Iată o definiție de bază.

Cum sa dezvolți un plugin WordPress? Un plug-in WordPress este un program sau un set de una sau mai multe funcții scrise în limbajul de scripting PHP, care adaugă un set specific de funcții sau servicii pe site-ul WordPress. Aveți posibilitatea să integrați fără probleme un plugin cu site-ul folosind punctele de acces și metodele furnizate de WordPress Plugin Application Program Interface (API).

Cum sa dezvolți un plugin WordPres? Doriti ca WordPress sa aiba functionalitati noi sau modificate? Primul lucru pe care trebuie să-l faceți este să căutați diferite depozite WordPress Plugin și surse pentru a vedea dacă cineva a creat deja un Plugin WordPress care să se potrivească nevoilor dvs. Dacă nu, acest articol vă va ghida în procesul de creare a propriului WordPress Plugin.

Acest articol presupune că sunteți deja familiarizat cu funcționalitatea de bază a WordPress și cu programarea PHP.

Resurse

Cum sa dezvolți un plugin WordPress? Pentru a înțelege modul în care WordPress Plugins funcționează și cum să le instalați pe blogul dvs. WordPress, consultați Plugin-uri.
Există o listă cuprinzătoare de articole și resurse pentru dezvoltatorii Plugin în resursele Plugin, inclusiv articole externe despre scrierea pluginurilor WordPress și articole pe subiecte speciale.
Pentru a afla elementele de bază despre modul în care WordPress Plugins sunt scrise, vizualizați codul sursă pentru un plug-in bine scris precum Hello Dolly, care este distribuit cu WordPress.
După ce ați scris Pluginul WordPress, citiți Prezentarea și promovarea Plugin-ului pentru a afla cum să îl distribuiți și să-l distribuiți altora.
Crearea unui plugin
Această secțiune a articolului trece prin pașii pe care trebuie să îi urmați – și câteva lucruri pe care trebuie să le luați în considerare – atunci când creați un plugin WordPress bine structurat.

Numele, fișierele și locațiile
Numele pluginului
Cum sa dezvolți un plugin WordPress? Prima sarcină în crearea unui Plugin WordPress este să vă gândiți la ceea ce va face pluginul, apoi să alegeți un nume (de preferință unic) pentru Pluginul dvs. Consultați pagina Plugin-uri (și celelalte repozitoare asociate acolo) pentru a verifica dacă numele dvs. este unic. De asemenea, puteți face o căutare Google pe numele dvs. propus. Cei mai mulți dezvoltatori din Plugin aleg să utilizeze nume care descriu ceea ce face Plug-ul: de exemplu, un Plug-uri legate de vreme ar avea probabil cuvântul “vreme” în nume. Numele poate fi compus din mai multe cuvinte.

Fișierele Plugin
Cum sa dezvolți un plugin WordPress? Următorul pas este să creați un fișier PHP cu un nume derivat din numele dvs. de plugin selectat. De exemplu, dacă Pluginul dvs. va fi numit “Funcționalitate fabuloasă”, s-ar putea să vă numiți fișierul PHP fabulos-functionality.php. Persoanele care vă instalează pluginul vor introduce acest fișier PHP în directorul WordPress Plugins în instalarea lor – de obicei, wp-content / plugins / – astfel că nici două pluginuri din acel director nu pot avea același nume de fișier PHP.

Cum sa dezvolți un plugin WordPress? Numele fișierului dvs. Plugin ar trebui, de asemenea, să fie unic, astfel încât pluginul dvs. să nu se afle în conflict cu altul în Depozitul de pluginuri. O soluție bună este să utilizați numele dvs. sau numele companiei dvs. ca prefix, fără spații sau caractere speciale – de exemplu, mycompanyname-fabulous-functionality.php.

Cum sa dezvolți un plugin WordPress? Pluginul dvs. WordPress trebuie să aibă cel puțin un fișier PHP; ar putea conține și fișiere JavaScript, fișiere CSS, fișiere imagine și fișiere lingvistice. Dacă există mai multe fișiere, alegeți un nume unic pentru un director și un nume pe care îl alegeți pentru fișierul principal PHP. (Acest nume de fișier este adesea, dar nu esențial, același cu numele directorului.) Exemplu de director și nume de fișiere ar putea fi mycompanyname-fabulous-funcționalitate și mycompanyname-fabulous-functionality.php, respectiv. Puneți toate fișierele Plugin-ului în directorul pe care l-ați creat și spuneți utilizatorilor Plugin-ului să încarce întregul director în wp-content / plugins /.

Cum sa dezvolți un plugin WordPress? Dacă utilizați un director pentru a conține fișierele Plugin, atunci numele directorului va fi folosit de WordPress când verificați WordPress Plugin Repository pentru actualizări. Dacă plugin-ul dvs. constă doar dintr-un singur fișier PHP, atunci numele fișierului va fi utilizat. Dacă WordPress vă spune că este disponibilă o versiune mai nouă a plug-in-ului, dar nu știți nimic despre o versiune mai nouă, aveți grijă. Este posibil ca un alt Plugin cu același nume de director sau nume de fișier să fie în Depozitul Plugin, iar acesta este cel pe care WordPress îl vede.

Cum sa dezvolți un plugin WordPress? O instalare WordPress poate fi configurată astfel încât directorul standard Plugin să fie schimbat de la wp-content / plugins /, deci trebuie să utilizați plugin_dir_path () și plugins_url () pentru căi absolute și URL-uri în cadrul codului PHP. Pentru mai multe detalii, consultați Determinarea directoarelor Plugin și Content.

În restul acestui articol, “fișierul Plugin PHP” se referă la fișierul Plugin PHP principal: fie direct în directorul wp-content / plugins /, fie într-un sub-director.

Nota de securitate: Luați în considerare blocarea accesului direct la fișierele PHP plugin adăugând următoarea linie în partea de sus a fiecăruia dintre ele. De asemenea, asigurați-vă că vă abțineți de la a executa un cod PHP independent, înainte de a apela orice funcții WordPress.

Cum sa dezvolți un plugin WordPress? Acest lucru se poate realiza în câteva moduri. Puteți verifica dacă configurația ABSPATH este definită sau verificați dacă există o funcție precum add_action. Oricare dintre metode poate fi folosită pentru a asigura că executarea PHP este permisă numai atunci când este inclusă ca parte a sistemului de bază.

definit (“ABSPATH”) sau muri (“Nu ratați copiii de script, vă rog!”);
Fișierul Readme
Dacă doriți să găzduiți Plugin-ul pe https://wordpress.org/plugins/, trebuie să creați un fișier readme.txt din directorul plugin-ului într-un format standardizat. Puteți utiliza generatorul automat “readme.txt” generator.

Depozitul de plugin-uri WordPress utilizează versiunile “Necesită” și “Testați până la” din fișierul readme.txt din eticheta stabilă.

Pagina principala
Cum sa dezvolți un plugin WordPress? Este foarte util pentru utilizatorii Plugin-ului dacă creați o pagină web care să acționeze ca o sursă de informații pentru Pluginul dvs. WordPress. Această pagină ar trebui să descrie modul de instalare a pluginului, ce are, ce versiuni de WordPress este compatibil, ce sa schimbat de la o versiune la o versiune a pluginului și cum se utilizează pluginul.

Anteturi de fișiere
Acum este timpul să puneți câteva informații în fișierul dvs. Plugin PHP principal.

Informații Plugin standard
Citiți despre acest lucru în manualul dezvoltatorului de pluginuri.

Licență
Citiți despre acest lucru în manualul dezvoltatorului de pluginuri.

Programarea pluginului
Apoi, este timpul să faceți ca Plugin-ul dvs. să facă ceva. Această secțiune conține câteva idei generale despre dezvoltarea Plugin-ului și descrie cum să permiteți Plugin-ului dvs. să realizeze mai multe sarcini.

Cârlige Plugin WordPress
Cum sa dezvolți un plugin WordPress? Multe pluginuri WordPress îți ating obiectivele prin conectarea la unul sau mai multe “cârlige” Plugin “WordPress”. Modul în care funcționează cârligele Plugin-ului este că la momente diferite în timp ce WordPress se execută, WordPress verifică dacă vreunul din Plugin-urile are funcții înregistrate pentru a rula în acel moment. Dacă da, atunci aceste funcții sunt executate. Aceste funcții modifică comportamentul implicit al WordPress.

Cum sa dezvolți un plugin WordPress? De exemplu, înainte ca WordPress să adauge titlul unei postări în ieșirea browserului, mai întâi verifică dacă vreun plugin a înregistrat o funcție pentru cârligul “filtru” numit “the_title”. Dacă da, textul titlului este transmis la rândul său prin fiecare funcție înregistrată, iar rezultatul final este rezultatul final al oricărei dintre aceste funcții înregistrate. Dacă pluginul dvs. trebuie să adauge unele informații la titlul tipărit, acesta poate înregistra o funcție specială care se numește atunci când este apelat filtrul “the_title”.

Un alt exemplu este cârligul “acțiune” “wp_footer”. Chiar înainte de sfârșitul paginii HTML generate de WordPress, acest cârlig verifică dacă vreun plugin are funcții înregistrate împotriva acestuia. Dacă da, le execută la rândul lor.

Puteți afla mai multe despre cum să înregistrați funcțiile atât pentru filtre cât și pentru cârligele de acțiune – și ce cârlige de pluginuri 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 WordPress nu are una, puteți sugera și noi cârlige. (În general, sugestiile vor fi luate, consultați Raportarea erorilor pentru a afla cum puteți să trimiteți o sugestie.)

Etichete de șablon
O altă modalitate pentru un plugin WordPress de a adăuga funcționalitate la WordPress este crearea de etichete personalizate pentru șabloane. Cineva care dorește să utilizeze pluginul dvs. poate adăuga aceste “etichete” la tema lor, în bara laterală, în secțiunea de postare a conținutului sau oriunde este potrivit. De exemplu, un plugin care adaugă etichete geografice la postări ar putea defini o funcție de etichetare a șabloanelor numită geotag_list_states () pentru bara laterală, în care sunt listate toate postările de stat cu etichete, cu link-uri către paginile de arhivă bazate pe statul Plugin.

Cum sa dezvolți un plugin WordPress? Pentru a defini o etichetă de șablon personalizat, scrieți o funcție PHP și o documentați pentru utilizatorii Plugin-ului pe pagina de pornire a Plugin-ului dvs. și / sau în fișierul PHP principal al Plugin-ului. Este o idee bună atunci când documentați funcția pentru a da un exemplu exact despre ce trebuie adăugat la fișierul tematic pentru a utiliza funcția, inclusiv .

Salvarea datelor de plugin în baza de date
Cele mai multe pluginuri WordPress vor trebui să obțină o intrare de la proprietarul site-ului sau utilizatorii de bloguri și să le salveze între sesiuni, pentru a fi utilizate în funcțiile de filtrare, funcțiile de acțiune și funcțiile șablonului. Aceste informații trebuie salvate în baza de date WordPress, pentru a fi persistente între sesiuni. Există patru (4) metode de salvare a datelor Plugin în baza de date:

Cum sa dezvolți un plugin WordPress? Utilizați mecanismul “opțiune” WordPress (descris mai jos). Această metodă este potrivită pentru stocarea unor cantități relativ mici de date statistice relativ statice – tipul de date pe care l-ați aștepta ca proprietarul site-ului să îl introducă la prima configurare a pluginului și rareori să îl modificați ulterior.
Post Meta (a.c.a. Câmpuri personalizate). Potrivit datelor asociate cu postări, pagini sau atașamente individuale. Consultați exemplele de funcții post_meta, add_post_meta () și funcțiile conexe.
Taxonomie particulară. Pentru a clasifica postări sau alte obiecte, cum ar fi utilizatorii și comentariile și / sau pentru o listă de date / valori care pot fi editate de utilizator, luați în considerare utilizarea unei taxonomii personalizate, mai ales atunci când doriți să accesați toate posturile / obiectele asociate unui anumit termen de taxonomie. Consultați taxonomiile personalizate.

Cum sa dezvolți un plugin WordPress? Creați o nouă tabelă de baze de date personalizate. Această metodă este potrivită pentru date care nu sunt asociate cu mesaje individuale, pagini, atașamente sau comentarii – tipul de date care va crește odată cu trecerea timpului și care nu are nume individuale. Consultați Crearea tabelelor cu pluginuri pentru informații despre cum să faceți acest lucru.
Mecanismul opțiunilor WordPress
Consultați Crearea paginilor de opțiuni pentru informații despre cum să creați o pagină care să vă salveze automat opțiunile pentru dvs.

Cum sa dezvolți un plugin WordPress? WordPress are un mecanism de salvare, actualizare și recuperare a unor bucăți de date individuale (“opțiuni”) din baza de date WordPress. Valorile opțiunilor pot fi șiruri de caractere, tablouri sau obiecte PHP (vor fi “serializate” sau convertite într-un șir, înainte de stocare și neserializate când vor fi recuperate). Numele de opțiuni sunt șiruri de caractere și trebuie să fie unice, astfel încât acestea să nu fie în conflict nici cu WordPress, nici cu alte pluginuri.

Cum sa dezvolți un plugin WordPress? În general, este de asemenea o idee bună să minimizați numărul de opțiuni pe care le utilizați pentru pluginul dvs. De exemplu, în loc să stocați 10 opțiuni diferite, luați în considerare stocarea unei serii serializate de 10 elemente ca opțiune cu un singur nume.

Iată principalele funcții pe care Plugin-ul dvs. le poate utiliza pentru a accesa opțiunile WordPress.

add_option ($ nume, valoarea $, $ deprecated, $ autoload);
Creează o nouă opțiune; nu face nimic dacă opțiunea există deja.
numele $
Necesar (șir). Numele opțiunii care urmează să fie adăugată.
valoarea $
Opțional (mixt), implicit este șirul gol. Valoarea opțiunii care trebuie stocată.
$ depreciat
Opțional (șir), care nu mai este folosit de WordPress, este posibil să treceți un șir gol sau nul la acest argument dacă doriți să utilizați următorul parametru $ autoload.
$ autoload
Opțional, implicit este “da” (enum: “da” sau “nu”). Dacă este setat la “da”, setarea este preluată automat de funcția wp_load_alloptions.
get_option (opțiunea $);
Preia o valoare de opțiune din baza de date.
opţiunea $
Necesar (șir). Numele opțiunii a cărei valoare doriți returnată. Puteți găsi o listă cu opțiunile implicite care sunt instalate cu WordPress la opțiunea Referință opțiune.
update_option ($ option_name, $ newvalue);
Actualizează sau creează o valoare de opțiune în baza de date (rețineți că add_option nu trebuie să fie apelat dacă nu doriți să utilizați parametrii $ deprecated sau $ autoload).
$ OPTION_NAME
Necesar (șir). Numele opțiunii de actualizare.
$ newValue
Necesar. (string | array | object) Noua valoare pentru opțiune.
Panouri de administrare
Presupunând că pluginul dvs. are unele opțiuni stocate în baza de date WordPress (vedeți secțiunea de mai sus), probabil că doriți să aveți un panou de administrare care va permite utilizatorilor dvs. de pluginuri să vizualizeze și să editeze valorile opțiunilor. Metodele pentru a face acest lucru sunt descrise în Adăugarea meniurilor de administrare.

Internaționalizarea pluginului
Cum sa dezvolți un plugin WordPress? Odată ce ați programat pluginul, o altă analiză (presupunând că intenționați să distribuiți pluginul dvs.) este internaționalizarea. Internaționalizarea este procesul de instalare a software-ului astfel încât să poată fi localizat; localizarea este procesul de traducere a textului afișat de software în diferite limbi. WordPress este folosit în întreaga lume, astfel încorporează internaționalizarea și localizarea în structura sa, inclusiv localizarea Plugin-urilor.

Rețineți că fișierele de limbă pentru pluginurile NU sunt încărcate automat. Adăugați acest lucru la codul Plugin pentru a vă asigura că fișierul (limbile) de limbă sunt încărcate:

load_plugin_textdomain (‘your-unique-name’, false, nume de bază (dirname (FILE)). ‘/ languages’);
Pentru a prelua un șir pur și simplu utilizați __ (“Nume șir”, “numele-unic”); pentru a returna traducerea sau _e (“Nume șir”, “numele-unic”); pentru a echivala traducerea. Traducerile vor intra apoi în directorul plugin / languages.

Cum sa dezvolți un plugin WordPress? Este recomandat să vă internaționalizați pluginul, astfel încât utilizatorii din diferite țări să îl poată localiza. Există o referință cuprinzătoare privind internaționalizarea, inclusiv o secțiune care descrie cum să internaționalizeze plugin-ul dvs., la I18n pentru WordPress Developers.

Actualizarea Pluginului
Această secțiune descrie pașii necesari pentru a vă actualiza Plugin-ul când îl găzduiți pe https://wordpress.org/plugins/, inclusiv detalii despre utilizarea Subversion (SVN) cu wordpress.org.

Cum sa dezvolți un plugin WordPress? Presupunând că ați trimis deja Plugin-ul la WordPress Plugin Repository, în timp, probabil că veți găsi necesitatea și, sperăm, timpul, pentru a adăuga caracteristici Pluginului dvs. sau pentru a repara erorile. Lucrați pe aceste modificări și comiteți modificările din portbagajul pluginului dvs. ori de câte ori doriți. Modificările vor fi vizibile publicului, dar numai pentru persoanele care se confruntă cu probleme tehnice verificând Pluginul prin intermediul SVN. Ce ceilalți utilizatori pot descărca prin intermediul site-ului sau administrația lor WordPress Plugin nu se va schimba.

Când sunteți gata să lansați o nouă versiune a pluginului:

Cum sa dezvolți un plugin WordPress? Asigurați-vă că totul este angajat și că noua versiune funcționează. Acordați atenție tuturor versiunilor WordPress pe care le susține Pluginul dvs. și încercați să le testați cu toate acestea. Nu testați doar noile caracteristici; de asemenea, asigurați-vă că nu ați spart accidental unele funcționalități mai vechi ale pluginului.

Cum sa dezvolți un plugin WordPress? Modificați numărul versiunii din comentariul antetului principal al fișierului PHP la noul număr de versiune (în dosarul trunchi).
Modificați numărul versiunii în câmpul “etichetă stabilă” a fișierului readme.txt (în dosarul trunchi).
Adăugați o nouă sub-secțiune în secțiunea “changelog” a fișierului readme.txt, descriind pe scurt ce s-a schimbat în comparație cu ultima versiune. Aceasta va fi afișată în fila “Changelog” a paginii Plugin.
Angajați aceste schimbări.
Creați o nouă etichetă SVN ca o copie a trunchiului, urmând acest ghid.
Dați sistemului câteva minute de lucru și apoi verificați pagina plug-in wordpress.org și o instalare WordPress cu plugin-ul dvs. pentru a vedea dacă totul este actualizat corect, iar instalarea WordPress prezintă o actualizare pentru Plugin-ul dvs. (verificările de actualizare pot fi stocate în cache, astfel încât acest lucru ar putea dura ceva timp – încercați să vizitați pagina “actualizări disponibile” în instalarea dvs. WordPress).

Depanare:

Cum sa dezvolți un plugin WordPress? Pagina Plugin-ului pe wordpress.org afișează încă vechea versiune. Ați actualizat câmpul “etichetă stabilă” în dosarul trunchi? Crearea unei etichete și actualizarea fișierului readme.txt în dosarul tag-urilor nu este de ajuns!
Pagina Plug-in-ului oferă un fișier zip cu noua versiune, dar butonul afișează în continuare numărul versiunii vechi și nu are loc nici o notificare de actualizare în instalările dvs. WordPress. V-ați amintit să actualizați comentariul “Versiune” în fișierul principal PHP?
Pentru alte probleme, verificați buna scriere a problemelor obișnuite ale lui Otto: directorul Plugins și fișierele readme.txt
Plugin Sugestii de dezvoltare
Această ultimă secțiune conține sugestii diverse privind dezvoltarea pluginurilor.

Codul unui Plugin WordPress trebuie să urmeze standardele de codare WordPress. Vă rugăm să luați în considerare și standardele de documentare inline.
Toate funcțiile din pluginul dvs. trebuie să aibă nume unice care diferă de funcțiile din nucleul WordPress, alte pluginuri și teme. Din acest motiv, este o idee bună să utilizați un prefix de nume de funcție unic pe toate funcțiile Plugin-ului. O posibilitate mult mai mare este de a defini funcțiile Plugin-ului într-o clasă (care trebuie să aibă și un nume unic).
Nu imprimați prefixul tabelului de bază de date WordPress (de obicei “wp_”) în Plugin-urile dvs. Asigurați-vă că ați folosit variabila prefixului $ wpdb->.
Citirea bazei de date este ieftină, dar scrisul este scump. Bazele de date sunt excepțional de bune pentru a prelua date și a le oferi acestora, iar aceste operații sunt (de obicei) rapide. Efectuarea de modificări în baza de date, totuși, este un proces mai complex și mai scump computational. Ca rezultat, încercați să minimizați cantitatea de scris pe care o faceți la baza de date. Pregătiți mai întâi totul în codul dvs., astfel încât să puteți face doar acele operațiuni de scriere de care aveți nevoie.
Utilizați API-urile WordPress în loc să utilizați SQL direct acolo unde este posibil. De exemplu, utilizați get_posts () sau noul WP_Query () în loc de SELECT * FROM {$ wpdb-> prefix} _posts.
Utilizați tabelele de baze de date existente în loc de a crea noi tabele personalizate, dacă este posibil. Majoritatea cazurilor de utilizare pot fi realizate cu tipuri personalizate de posturi și meta date, taxonomie personalizată și / sau una dintre celelalte tabele standard și utilizarea tabelelor standard oferă o mulțime de UI și alte funcționalități “gratuit”. Gândiți-vă foarte atent înainte de a adăuga un tabel, deoarece adaugă complexitatea pluginului pe care mulți utilizatori și constructorii de site-uri preferă să le evite.
SELECTați doar ceea ce aveți nevoie. Chiar dacă bazele de date prelucrează date cu orbire rapidă, trebuie să încercați să reduceți încărcarea bazei de date selectând doar acele date pe care trebuie să le utilizați. Dacă trebuie să numărați numărul de rânduri într-o tabelă, nu SELECT * FROM, deoarece toate datele din toate rândurile vor fi trase, pierzând memoria. De asemenea, dacă aveți nevoie doar de post_id și post_author în Plugin-ul dvs., atunci doar SELECT acele câmpuri specifice, pentru a minimiza încărcarea bazei de date. Amintiți-vă: sute de alte procese pot atinge baza de date în același timp. Baza de date și serverul au fiecare câte un număr atât de mare de resurse pentru a se răspândi printre toate aceste procese. Învățați cum să minimalizați lovitura Plugin-ului împotriva bazei de date va asigura că Plugin-ul dvs. nu este cel care este acuzat de abuzul de resurse.
Eliminați erorile PHP în pluginul dvs. Adăugați define (‘WP_DEBUG’, true); la fișierul wp-config.php, încercați toate funcționalitățile pluginului dvs. și verificați dacă există erori sau avertismente. Remediați orice se întâmplă și continuați în modul de depanare până când acestea au fost eliminate.
Încercați să nu faceți clic direct la etichetele

LĂSAȚI UN MESAJ

Please enter your comment!
Please enter your name here