În acest moment al seriei, suntem in cele din urma capabil să înceapă construirea plugin-ului nostru folosind tehnicile orientate pe obiect pe care le-am învățat până acum în serie.
Dacă vă alăturați acum, recomandăm să vă apropiați de serii până acum; în caz contrar, riscați să pierdeți pe unele dintre punctele cheie pe care le vom demonstra, pe măsură ce construim pluginul în următoarele câteva articole.
În regulă, deci cu asta ați spus că este timpul să începeți să scrieți codul. Înainte de a începe, este important să înțelegeți că construirea unui plugin - sau a oricărui tip de software pentru acest lucru - necesită un număr de pași și, deși vom scrie un pic de cod în acest articol special, nu vom fi adăugând o mulțime de funcționalități până când avem schela sau fundația pluginului.
Pentru a face acest lucru, trebuie să revizuim mai multe lucruri:
Deci, hai să acoperi aceste puncte foarte repede, și apoi vom intra în detaliile plugin-ului.
Pe parcursul următoarelor articole, vom construi un plugin care introduce o postare meta-box într-un singur editor de postare care afișează toate datele meta asociate postului curent.
Plugin-ul va fi read-only numai pentru că puteți vedere datele meta asociate pluginului. Nu vom putea introduce meta date noi - cel puțin nu pentru prima versiune.
Celelalte caracteristici sunt că o va afișa într-un format curat și organizat, astfel încât să putem identifica cu ușurință cheia și valorile pentru ID post. Vom introduce, de asemenea, o ancoră care ne va permite să copiem o linie de cod care ne va permite să sunăm la informația sub forma get_post_meta ($ post_id, $ meta_key, $ meta_value);
.
Înainte de a merge mai departe, există o mulțime de caracteristici îngrijite pe care le putem implementa în acest plugin.
Am putea introduce abilitatea de a:
Dar în conformitate cu filozofia de a crea un "puternic 1.0", vom construi o fundație subțire și concentrată pe care să putem continua să construim plugin-ul așa cum am considerat potrivit după această serie.
Poate că vom acoperi unele dintre caracteristicile de mai sus înainte de sfârșitul seriei, poate că veți dori să introduceți propriul set de caracteristici. Ambele sunt ok. Linia de fund este că vom construi un nucleu puternic, din care putem continua să repetăm pentru a extinde funcționalitatea.
Prin urmare, cu toate acestea, să vorbim mai întâi prin punctele superioare ale pluginului, atunci vom analiza modul în care vom organiza fișierele și componentele pluginului.
Sunet confuz? Sperăm că văzând și aruncând o privire la structura fișierelor și la exemplul de bază, vom continua să avem mai multă sens.
Cu acest lucru, să luăm o privire la nivel înalt asupra componentelor care vor interacționa între ele, apoi vom analiza modul în care vor fi organizate fișierele. După aceea, vom intra în stubbing codul pentru pluginul pe care vom completa în următorul articol.
În mod specific, plugin-ul va consta din următoarele componente - sau fișiere - care vor alcătui sursa pluginului. După ce aruncăm o privire la listarea de fișiere, vom examina o diagramă a modului în care toate piesele vor interacționa.
un singur post-meta-manager.php
este fișierul primar care înregistrează pluginul cu WordPress și pune totul în mișcare.clasa-un singur post-meta-manager-admin.php
este fișierul care este responsabil pentru înregistrarea și întocmirea foilor de stil, precum și afișarea elementelor interfeței utilizator care vor conține meta date post.un singur post-meta-manager-admin.css
este foaia de stil care va modela interfața cu utilizatorul.clasa-un singur post-meta-manager-loader.php
este fișierul care va coordona acțiunile și filtrele între plugin-ul principal și clasa de administrare.clasa-un singur post-meta-manager.php
este fișierul cu plugin-ul principal care menține informații despre versiunea pluginului, informații despre plug-in-uri, referințe la încărcător și fișierul în care instruim încărcătorul ce obiecte și funcții sunt responsabile pentru afișarea interfeței de administrare.README.md
oferă instrucțiunile obișnuite despre cum să începeți cu pluginul.CHANGES.md
oferă o listă de modificări care apar în fiecare versiune a pluginului pe care îl lansăm.În funcție de nivelul dvs. de experiență cu programarea orientată pe obiecte, acest lucru poate sau nu poate părea o mulțime de fișiere pentru un set relativ simplu de caracteristici; cu toate acestea, mai sunt și mai multe: nu vom renunța la toate aceste fișiere în rădăcina directorului plugin.
În schimb, o să facem un pas mai departe și să organizăm lucruri și în directoarele corecte. Odată ce vom revedea acest lucru, vom examina apoi organizarea componentelor sub forma unei diagrame, iar apoi vom examina codul care furnizează schela pentru plugin.
Organizarea fișierelor este relativ simplă și este, probabil, cel mai bine demonstrată prin utilizarea unei imagini:
Pentru a fi clar, iată descompunerea a ceea ce vedeți în captura de ecran de mai sus:
admin / clasa-un singur post-meta-manager-admin.php
admin / css / single-post-meta-manager.admin.css
include / clasa-un singur post-meta-manager-loader.php
include / clasa-un singur post-meta-manager.php
limbi /
un singur post-meta-manager.php
CHANGES.md
README.md
license.txt
Acest lucru este important pentru a recunoaște și există câteva locuri în codul în care vom înregistra dependențe și este important să știm Unde dependențele sunt astfel încât să putem oferi căile potrivite pentru ei.
În acest moment, suntem gata să începem să stingem clasele pe care le vom folosi. Există câteva lucruri importante pe care trebuie să le țineți cont de codul pe care urmează să îl vedeți:
Cu aceasta a spus, dacă aveți întrebări despre cod, nu ezitați să lăsați comentarii despre acest lucru; cu toate acestea, aș putea spune așteptați până la următorul articol pentru a vedea răspunsul.
Acum, la codul.
Fișierul cu plugin-ul principal este responsabil pentru înregistrarea plugin-ului cu WordPress și, în cele din urmă, va fi responsabil pentru importul clasei plugin-ului principal (pe care o vom revizui doar puțin) și, de fapt, setarea pluginului în mișcare.
Rețineți că condiționarea pe care o avem în partea de jos a fișierului. Acest lucru vă va asigura că fișierul plugin nu poate fi accesat direct în browserul web.
Fișiere administrative
Toate aceste fișiere se află în
admin
directorul menționat mai sus.Clasa administratorului unic de mesaje Meta Manager
Această clasă va închide foaia de stil și va afișa caseta meta care va fi utilizată pentru a afișa postul meta dat.
versiune = $ versiune; funcția publică enqueue_styles () funcția publică add_meta_box ()În această clasă, observați că are un singur atribut protejat pentru
$ versiune
a pluginului. Acest atribut este setat în constructorul clasei.Vom vedea cum se va potrivi acest lucru mai târziu în cod.
Foaia de stil pentru Managerul unic de posturi Meta
În acest moment, nu există niciun cod de afișat pentru acest fișier; cu toate acestea, mergeți mai departe și adăugați-l la
admin / css
subdirector ca fiind ceea ce vom folosi în cele din urmă pentru a modela tabloul de bord.include
Acestea sunt fișiere de plugin-uri principale care sunt responsabile pentru coordonarea informațiilor între diferitele cârlige și zona administrativă a plugin-ului.
Un singur mesaj de încărcare Meta Manager
Această clasă va fi utilizată de clasa principală a pluginurilor pentru a coordona toate cârligele existente în plugin și clasa administrativă pe care am definit-o mai sus.
Observați că în clasa de mai sus, am marcat atributele ca
protejat
. Acest lucru se face astfel încât această clasă să aibă acces la atributele sale, dar nu și alte clase.În plus, am continuat și am făcut acest lucru doar în cazul în care subclasăm această clasă specială într-o viitoare iterație a pluginului.
Un singur manager de posturi Meta Post
În cele din urmă, avem clasa principală a plugin-ului este responsabilă pentru încărcarea dependențelor, setarea localului și coordonarea cârligelor.
plugin_slug = 'un singur post-meta-manager-slug'; $ this-> version = '0.1.0'; funcția privată load_dependencies () funcția privată define_admin_hooks () funcția publică execută () funcția publică get_version () return $ this-> version;Observați în codul de mai sus, avem în plus
protejat
atribute, câtevaprivat
funcții și apublic
funcție folosită ca un getter pe care îl vom folosi pe măsură ce vom continua să construim pluginul.În următorul articol, vom petrece mult timp în această clasă, deoarece acesta este punctul de intrare în cazul în care se petrece o mulțime de funcționalitate.
Urmeaza
Am acoperit o mulțime de materiale în acest articol, dar evident că sunt multe de făcut. În afară de furnizarea de documentații pentru funcțiile noastre, trebuie să implementăm de fapt funcționalitatea care aduce viață acestui schelă.
În următorul articol din serie, vom face exact acest lucru, după care ne vom îndrepta atenția asupra documentării codului.
Așa cum am menționat anterior, vă rugăm să nu ezitați să puneți întrebări și / sau comentarii despre codul de mai sus. Pentru cei interesați, puteți naviga la starea actuală a proiectului pe GitHub.
Până la următorul articol!