Object-Oriented Programming în WordPress Document Pluginul II

În acest moment al seriei, suntem gata să avansăm prin completarea pluginului, documentând fișierele, clasele, funcțiile, variabilele și multe altele.

Deși acesta este ultimul pas pe care trebuie de fapt să-l finalizăm, nu este ultimul post din serie, deoarece vom continua să analizăm câteva subiecte avansate în programarea orientată pe obiecte.

Dar, înainte de a face acest lucru, să aducem pluginul nostru la versiunea 1.0 punând în practică tot ce am învățat în articolul precedent.

Desigur, ca și cu toate articolele precedente, vă recomand să dobândiți tot ce am acoperit până acum, astfel încât să vă grăbiți nu numai cu munca pe care am făcut-o în ultimul articol, ci și cu modul în care am ajuns la punctele finale discutați în acest articol.

  1. O introducere
  2. Clase
  3. Tipuri
  4. Structuri de control: declarații condiționate
  5. Structuri de control: buclă
  6. Funcții și atribute
  7. domeniu
  8. Construirea Pluginului I
  9. Construirea pluginului II
  10. Documentați Pluginul I

Cu toate cele acoperite și revizuite, să începem să documentăm fiecare dintre fișierele noastre.

Documentarea pluginului

Există o serie de moduri diferite în care putem să documentăm acest plugin:

  • Am putea să documentăm mai întâi toate anteturile de fișiere, apoi să ne întoarcem și să documentăm clasele, apoi să putem reveni și să documentăm variabilele, apoi să putem documenta funcțiile.
  • Am putea documenta fiecare fișier la un moment dat și am o scurtă discuție asupra a tot ceea ce este inclus pe baza unui fișier.

Evident, opțiunea va oferi mai multă documentație pe secțiune, dar ar trebui să ducă la un articol mult mai puțin obositor și o înțelegere mult mai ușoară a fluxului de control pentru întregul plugin.

În acest scop, vom lucra prin plugin, fișier cu fișier, introducând documentația pentru fiecare bucată de cod pe care o avem și apoi vom discuta despre orice puncte de interes care urmează codul.

În cele din urmă, vom asigura că ne referim la versiunea finală a pluginului la sfârșitul articolului. Cu asta a spus, să începem.

Managerul Meta Post Meta

Amintiți-vă că fișierul principal pentru pornirea plugin-ului este fișierul single-post-meta-manager.php localizat în rădăcina directorului pluginului.

Iată ce arată versiunea complet documentată a fișierului. Citiți fiecare comentariu îndeaproape acordând atenție nu numai formatului pe care îl urmează, ci și conținutului pe care îl oferă.

alerga();  // Apelați funcția de mai sus pentru a începe executarea pluginului. run_single_post_meta_manager (); 

În codul de mai sus, observați că am definit un antet de fișier conform convențiilor pe care le-am prezentat în articolul precedent. De asemenea, am păstrat etichetele antetului obligatoriu, pentru ca WordPress să le citească corespunzător.

Rețineți că, în acest caz, le-am inclus într-un obicei @ WordPress plugin etichetă. Acest lucru nu este necesar, dar ajută la separarea comentariilor antetului de fișiere de comentariile din plugin.

În cele din urmă, rețineți că am dat peste versiunea acestui plugin 1.0, și am dat și acest plugin @pachet valoarea SPMM care nu are Un singur manager de posturi Meta Post. Vom folosi asta în întreg pluginul.

include Director

Apoi, să ne îndreptăm atenția asupra tuturor fișierelor care se află în directorul include. 

Din moment ce aceste fișiere sunt necesare înainte de orice în directorul de administrare, este logic să se uite la fiecare dintre aceste fișiere în mod individual, și apoi rotunși discuția noastră cu fișierele rămase în directorul de administrare.

Managerul Meta Post Meta

plugin_slug = 'un singur post-meta-manager-slug'; $ this-> version = '1.0.0'; $ This-> load_dependencies (); $ This-> define_admin_hooks ();  / ** * Importă clasele de administrare unică Post Meta și un singur încărcător Meta Post. * * Clasa de administrare Single Post Meta Manager definește toate funcționalitățile unice pentru * introducerea funcționalității personalizate în tabloul de bord WordPress. * * Single Post Meta Manager Loader este clasa care va coordona cârligele și callback-urile * din WordPress și pluginul. Această funcție instantează și stabilește referința la proprietatea clasei * loader. * * @access privat * / privat funcția load_dependencies () require_once plugin_dir_path (dirname (__FILE__)). 'Admin / clasa-un singur post-meta-manager-admin.php'; require_once plugin_dir_path (__FILE__). 'Clasă-un singur post-meta-manager-loader.php'; $ acest-> încărcător = nou Single_Post_Meta_Manager_Loader ();  / ** * Definește cârligele și funcțiile de apel invers care sunt utilizate pentru configurarea hărților de stiluri * și caseta de metadate a pluginului. * * Această funcție se bazează pe clasa Administrator posta Meta Manager și pe proprietatea clasei Loader Single Post Meta Manager *. * * @access privat * / funcția privată define_admin_hooks () $ admin = new Single_Post_Meta_Manager_Admin ($ this-> get_version ()); $ this-> încărcător-> add_action ('admin_enqueue_scripts', $ admin, 'enqueue_styles'); $ this-> încărcător-> add_action ('add_meta_boxes', $ admin, 'add_meta_box');  / ** * Setează această clasă în mișcare. * * Execută plugin-ul prin apelarea metodei de rulare a clasei de încărcătoare care va * înregistra toate funcțiile de cârlig și callback folosite în plugin * cu WordPress. * / funcționarea funcției publice () $ this-> loader-> run ();  / ** * Returnează versiunea curentă a pluginului la apelant. * * @return string $ this-> version Versiunea curentă a plugin-ului. * / funcția publică get_version () return $ this-> version;  

În mod evident, există mult de noi comentarii care au fost introduse în acest dosar; cu toate acestea, ar trebui să fie foarte explicită cu privire la ceea ce fac fiecare proprietate a clasei, constructorul și funcțiile interne.

Lucrul cheie de observat - în afară de modul în care informațiile sunt coordonate prin intermediul plugin-ului - este modul în care am respectat standardele definite în articolul precedent. 

Observați totuși că noi avea libertatea dacă nu utilizând anumite etichete și / sau caracteristici ale documentației atunci când acestea nu sunt relevante. Acesta este un lucru pe care vom continua să îl facem în tot restul articolului.

Unitatea de încărcare a mesajelor Meta Manager

acțiuni = array (); $ this-> filtre = array ();  / ** * Înregistrează acțiunile cu WordPress și obiectele respective și * metodele lor. * * @param string $ cârlig Numele cârligului WordPress la care înregistrăm un apel invers. * @param object $ component Obiectul care conține metoda care trebuie apelată când cârligul este declanșat. * @ string string $ callback Funcția care se află pe componenta specificată. * / funcția publică add_action ($ hook, $ component, $ callback) $ this-> actions = $ this-> add ($ this-> acțiuni, $ hook, $ component, $ callback);  / ** * Înregistrează filtrele cu WordPress și obiectele respective și * metodele lor. * * @param string $ cârlig Numele cârligului WordPress la care înregistrăm un apel invers. * @param object $ component Obiectul care conține metoda care trebuie apelată când cârligul este declanșat. * @ string string $ callback Funcția care se află pe componenta specificată. * / funcția publică add_filter ($ hook, $ component, $ callback) $ this-> filters = $ this-> add ($ this-> filtre, $ hook, $ component, $ callback);  / ** * Înregistrează filtrele cu WordPress și obiectele respective și * metodele lor. * * @access private * * @param array $ hooks Colecția de cârlige existente pentru a adăuga la colecția de cârlige. * @ string string $ cârlig Numele cârligului WordPress la care înregistrăm un apel invers. * @param object $ component Obiectul care conține metoda care trebuie apelată când cârligul este declanșat. * @ string string $ callback Funcția care se află pe componenta specificată. * * @return array Colecția de cârlige care sunt înregistrate cu WordPress prin intermediul acestei clase. * / funcția privată adăugați ($ hooks, $ hook, $ component, $ callback) $ hooks [] = array ('hook' => $ hook, 'component' ; întoarcere $ cârlige;  / ** * Înregistrează toate filtrele și acțiunile definite cu WordPress. * / funcția publică funcționează () foreach ($ this-> filtre ca $ hook) add_filter ($ hook ['hook'], array ($ hook ['component']);  foreach ($ this-> acțiuni ca $ hook) add_action ($ hook ['hook'], array ($ hook ['component'], $ hook ['callback']));  

Observați că această clasă este mai mult o componentă de bază a pluginului, deoarece coordonează toate acțiunile și filtrele utilizate în plugin. Acest plugin centralizează toată înregistrarea și coordonarea cârligelor care sunt utilizate în întreg pluginul.

În cele din urmă, când alerga este numit, toate cârligele sunt înregistrate cu WordPress, astfel încât pluginul se declanșează, acesta va apela fiecare acțiune și filtre înregistrate.

admin Director

În acest moment, suntem gata să ne îndreptăm atenția asupra fișierelor din directorul de administrare al pluginului. 

Deși fișierul conține câteva fișiere PHP, acesta conține și un fișier CSS. În scopul acestui articol, nu vom fi documentarea fișierelor CSS; Cu toate acestea, Codex-ul WordPress face definiți documentația pentru aceasta.

Pentru moment, totuși, să continuăm să documentăm clasele și fișierele care există în admin director.

Administrator unic Post Meta Manager

Clasa administratorului unic Post Meta Manager Admin are o singură responsabilitate: definește funcționalitatea pentru a reda meta caseta și stilurile sale pentru tabloul de bord.

versiune = $ versiune;  / ** * Include foaia de stil responsabilă pentru modelarea conținutului acestei * căsuțe meta. * / funcția publică enqueue_styles () wp_enqueue_style ('single-post-meta-manager-admin', plugin_dir_url (__FILE__) > versiune, FALSE);  / ** * Înregistrează caseta de metadate care va fi utilizată pentru a afișa toate post-metadatele * asociate postării curente. * / funcția publică add_meta_box () add_meta_box ('one-post-meta-manager-admin', ' );  / ** * Necesită fișierul care este utilizat pentru a afișa interfața de utilizator a căsuței meta post. * / funcția publică render_meta_box () require_once plugin_dir_path (__FILE__). 'Amprente parțiale / un singur post-meta-manager.php';  

Observați că clasa de mai sus are foarte puține detalii funcționale. Mai întâi, clasa menține o referință la versiunea pluginului, foaia de stil folosită pentru a modela meta-box-ul și funcția necesară pentru a face efectiv meta-caseta.

Amintiți-vă că toate acestea sunt configurate în fișierul plugin-ului principal și în încărcător. Acest lucru ajută la de-cuplu logica care există în plugin-ul, astfel încât fiecare clasă să se poată concentra asupra scopului său principal.

Desigur, piesa finală a pluginului se bazează pe fișierul parțial actual care conține marcajul necesar pentru a afișa caseta meta.

Un singur post Meta Manager parțial

 
$ post_meta_value) ?>

Aceasta ar trebui să fie relativ explicită; totuși, pentru a fi completă, rețineți că acest fișier ia actul de identitate curent (prin utilizarea get_the_ID () funcția), citește datele post meta, apoi iterează prin aceasta construind un tabel care afișează tastele și valorile.

Finalizarea pluginului

În acest moment, am finalizat implementarea pluginului nostru. De la punerea în practică a programelor de programare orientate pe obiecte, la documentarea codului.

Puteți lua versiunea finală a pluginului pe GitHub; cu toate acestea, vom continua discuția orientată pe obiecte cu privire la alte câteva postări, astfel încât să putem explora câteva subiecte mai avansate, cum ar fi moștenirea, abstractizarea și alte subiecte.

Între timp, dacă aveți întrebări sau comentarii despre plugin, nu ezitați să le lăsați în comentarii!

Cod