Chiar acum, unul dintre cele mai comune modele de design - dacă nu modelul cel mai obișnuit de design - folosit în dezvoltarea web-ului este cel al MVC (sau Model / View / Controller), dar la fel de popular ca și este, nu este singurul mod în care sunt construite cadre, fundații și alte biblioteci.
Cauza în acest punct: WordPress utilizează modelul de design bazat pe evenimente pentru a-și alimenta sistemul de cârlig. Și, deși modelele de design nu se exclud reciproc, este mai probabil să le recunoașteți acea pentru că este ceea ce face ca WordPress să fie cât mai flexibil.
Pentru a fi clar, acest lucru nu înseamnă că alte modele nu sunt utilizate în întreaga sa bază de coduri (sau orice altă aplicație a codului bazei), ele pot să nu fie la fel de ușor de recunoscut.
Pe deasupra, unul dintre lucrurile pe care dezvoltatorii profesioniști se străduiesc să scrie este un cod de întreținere. Dar, pe măsură ce vârstele de coduri se îmbogățesc și tot mai mulți oameni își încep activitatea în baza de coduri, devine din ce în ce mai dificil să păstreze același nivel de organizare, claritate și mentenabilitate consecvent în timp ce un proiect se îmbătrânește.
Toate ideile de mai sus se aplică programului WordPress dacă lucrați la teme, pluginuri, extensii sau alt tip de proiect. Chestia este că este important să vă asigurați că respectați standardele și convențiile de codare stabilite pentru crearea acestor proiecte.
Să presupunem că lucrați la un plugin care introduce o casetă meta custom; cu toate acestea, nu este suficient să introduceți o casetă meta. În schimb, vor fi create grupuri de opțiuni conexe.
Aici începe să devină un pic mai dificil. De-a lungul acestei serii, vom lua într-un fel că putem scrie codul de întreținere în WordPress printr-un exemplu de plugin care introduce câmpuri meta, diverse opțiuni și navigare cu tab-uri în tabloul de bord WordPress.
Când sunteți în curs de planificare a planului de planificare a opțiunilor pentru casetele dvs. meta, aveți câteva opțiuni disponibile:
Pentru cei care au folosit WordPress pentru o perioadă îndelungată de timp, probabil că sunteți familiarizați cu vizualizarea navigației cu tab-uri în tabloul de bord cel puțin într-o anumită capacitate. Pentru cei care sunt curioși cum cum să pună în aplicare acest lucru nu numai programabil, ci într-o mentenabile , vom urmări cum să facem acest lucru prin intermediul acestei serii.
Mai precis, vom scrie un plugin WordPress mic care va introduce câteva câmpuri, opțiuni asociate care sunt grupate pe file și apoi vom introduce câteva elemente suplimentare pentru a arăta cum să salvați, să dezinstalați, și să preluați datele.
Ca și în cazul majorității posturilor din seria pe care le scriu, îmi place să încerc să evidențiez ce vom face la un nivel înalt înainte de a intra, de fapt, în cod. Acest lucru ajută la furnizarea unei baze conceptuale a locului în care ne îndreptăm și ne ajută să evidențiem viitoarele serii de articole, precum și ceea ce vom face la nivel de cod.
Dacă nu altceva, acesta oferă un loc la care să ne referim, pe măsură ce continuăm să progresăm în întreaga serie.
Înainte de a privi conturul, ceea ce vreau să menționez este că cea mai importantă achiziție a acestui articol specific va fi aceea de a observa separarea preocupărilor, precum și De ce am ales să facem lucrurile așa cum am făcut, înțelegem cum ajută la mentenabilitate.
În acest scop, iată ce ne uităm la următoarele articole:
Ca și în cazul dezvoltării, spargerea lucrurilor în mai multe componente mai mici este absolut esențială, astfel încât pentru restul acestui post vom examina pașii necesari pentru a începe să lucrăm la un plugin care introduce o meta-box în postul tip post "standard".
Înainte de a merge mai departe, să configurați directorul plugin-ului nostru. Aceasta ar trebui să includă următoarele:
CITEȘTE-MĂ
Și, evident, ar trebui să ne asigurăm că directoarele sunt bine organizate și că codul este clar.
Pentru a face acest lucru cel puțin oarecum practic, vom numi acest plugin "Comentariul autorului", care ne permite să împărtășim câteva note clare despre ceea ce am crezut, folosit și notat în timp ce scriem mesajul.
Putem opta să îl facem public într-o postare viitoare bazată pe feedbackul dvs., dar deocamdată vom planifica doar să îl lăsăm în backend.
Cu asta a spus, să începem.
Lucrul pe care trebuie să-l facem este să stingem structura de directoare pe care o vom folosi pentru proiect. Veți vedea o captură de ecran pentru acest lucru mai jos, după care voi descrie scopul fiecărui director.
Rădăcina directorului include două fișiere:
README.md
care este standardul CITEȘTE-MĂ
care vine cu un plugin WordPress.autori-commentary.php
care este responsabil pentru pornirea efectivă a pluginului. Acesta este fișierul de bootstrap.Apoi, avem directorul de administrare. Acest director include:
bunuri
care include subdirectoare pentru ambele fișiere JavaScript și CSS (vom folosi CSS de vanilie în întreaga serie.clasă-autori-commentary.php
care va fi în primul rând clasa decât încapsulează o mare parte din funcționalitatea noastră.vizualizari
care include un subdirector numit amprente parțiale
. vizualizari
directorul va fi responsabil pentru redarea filelor și includerea întregului conținut pentru fiecare filă pe baza parțială. Aceasta este amprente parțiale
include conținutul pentru fiecare filă.Rețineți că este posibil să adăugăm directoare suplimentare pentru plugin ca seria progresează. Asta este, această structură este supusă schimbării prin faptul că probabil vom adăuga sau chiar vom muta un pic de conținut bazat pe modul în care progresează pluginul, dar aceasta este structura de bază de care avem nevoie pentru a începe.
De când avem structura de director de bază și fișierele necesare, suntem gata să începem să stingem o parte din cod. Rețineți că, deși pluginul va fi funcțional din punct de vedere al activării, nu va face nimic până când nu vom adăuga codul în următorul set de articole.
Cu asta a spus, vom merge mai departe și să populați fișierele care sunt necesare pentru a obține plugin-ul în funcțiune în tabloul de bord WordPress.
Primul lucru pe care trebuie să-l facem este să umpleți antetul pluginului astfel încât acesta să includă blocul de documentație necesar pentru WordPress pentru a afișa plugin-ul în tabloul de bord:
Condiționarea finală asigură că dacă cineva încearcă să acceseze direct fișierul, scriptul va întrerupe execuția.
Apoi, trebuie să vă asigurați că fișierul plugin principal pe care l-am început mai sus este conștient de clasa primară pe care am creat-o în pasul anterior. Pentru a face acest lucru, avem nevoie doar de un simplu
require_once
afirmație.Dar înainte să sunăm
require_once
, avem nevoie de un fișier pentru a include, nu? În acest scop, hai să mergem înadmin
subdirector și înclasa-autor-commentary.php
class, vom adăuga următorul cod.Comentariile sunt explicative, dar voi fi siguri că voi schița tot ce se întâmplă după ce blocul de cod a fost finalizat:
* / class Author_Commentary_Admin / ** * ID-ul acestui plugin. * * @ de la 0.1.0 * @ acces privat * @var string $ nume ID-ul acestui plugin. * / nume privat $; / ** * Versiunea acestui plugin. * * @ din 0.1.0 * @acces privat * @var string $ version Versiunea curentă a acestui plugin. * / versiunea privată $; / ** * Inițializați clasa și setați proprietățile acesteia. * * @ din 0.1.0 * @var string $ name Numele acestui plugin. * @var string $ version Versiunea acestui plugin. * / funcția publică __construct ($ name, $ version) $ this-> name = $ name; $ this-> version = $ version;Observați că în codul de mai sus, tot ceea ce am făcut cu adevărat - pe lângă furnizarea de documentație pentru clasa, proprietățile și constructorul nostru - este configurarea unui constructor care acceptă o
numele $
și a$ versiune
parametru.Acestea vor fi utile ulterior când importim dependențe și foi de stil JavaScript. Pentru moment, totuși, acest lucru este tot ce trebuie să începem.
Cu asta putem să ne întoarcem
autori-commentary.php
și scrieți codul pentru pornirea pluginului.În primul rând, vom folosi
require_once
pentru a importa clasa pe care tocmai am creat-o:Apoi vom seta o funcție simplă și un apel pentru a începe procesul:
Observați că nu definim nici un cârlig în acest fișier. Totul se va afla în cele din urmă în subpachetul - acest lucru ne ajută să ne separăm preocupările mai eficient, făcând astfel codul mai ușor de întreținut și ne permite să ne păstrăm codul orientat pe obiect.
Observați că aceasta definește o funcție simplă care, când este sunată de îndată ce plugin-ul este activat, creează o instanță a
Author_Commentary_Admin
clasa dupa trecerea la necesarul necesarnumele $
și$ versiune
parametrii.Punerea la bază a lucrărilor
În acest moment, toate lucrările de bază au fost stabilite, care ne vor ajuta să mergem mai departe cu lucrul la plugin-ul nostru. Ar trebui să puteți descărca fișierul de la GitHub, instalați-l în WordPress și activați-l.
Din nou, acest lucru nu va afișa nimic, dar pregătește baza de cod pentru lucrarea pe care o vom începe în următorul articol.
Dacă aveți întrebări deasupra codului de mai sus sau în cazul în care seria se îndreaptă, nu ezitați să lăsați un comentariu; altfel, aștept cu nerăbdare să vă văd în următoarea tranșă.