De-a lungul acestei serii, am analizat o serie de API-uri de metadate oferite de WordPress. Aceasta include API-ul Post Meta și API-ul User Meta. Astăzi, vom fi rotunjite în serie, uitandu-ne la WordPress Comment Meta API.
Rețineți că acesta este cel care oferă metadatele finale API WordPress. Începând cu WordPress 4.4, există acum un API Metadata cu termeni. Pentru a înțelege pe deplin acest lucru, este important să înțelegeți taxonomiile, termenii și relațiile acestora în contextul WordPress. Într-o serie viitoare, voi acoperi exact acest lucru.
Dar astăzi, ne vom concentra pe gestionarea metadatelor asociate cu comentariile. Dacă nu ați citit altceva în această serie până acum, vă recomand să revizuiți ceea ce am acoperit până acum.
Dacă sunteți toți prinși, atunci să începem.
De-a lungul acestei serii, am folosit definiția WordPress a metadatelor ca fundație pentru înțelegerea modului în care aceste informații sunt reprezentate în contextul mediului nostru.
Mai precis, am spus:
Meta-datele sunt manipulate cu perechi cheie / valoare. Cheia este numele elementului metadata. Valoarea reprezintă informațiile care vor apărea în lista metadatelor pentru fiecare post individual la care sunt asociate informațiile.
În concordanță cu restul conținutului pe care l-am văzut pe parcursul acestei serii, această definiție este valabilă și pentru metadatele de comentariu, la fel ca în cazul metadatelor postate și al metadatelor de utilizator.
Avantajul este că, odată ce ați ajuns să vă ocupați de diferitele API-uri de metadate pe care le-am acoperit, ar trebui să existe foarte puțină surpriză cu privire la funcționarea altor funcții de metadate. Pot exista câteva lucruri diferite în funcție de API pe care îl utilizați, dar conținutul funcționalității va fi același.
Și, după cum veți vedea, acest lucru continuă să fie cazul cu API metadata de comentariu.
Ca și celelalte API-uri pe care le-am examinat pe parcursul acestei serii, există patru funcții principale pe care le vom explora:
add_comment_meta
update_comment_meta
get_comment_meta
delete_comment_meta
Până acum, probabil știți ce să vă așteptați atunci când vine vorba de, de exemplu, diferențele dintre adăugarea metadatelor de comentariu și actualizarea metadatelor de comentariu. Sau, să zicem, să lucrezi cu ștergerea metadatelor de comentariu.
Acest lucru nu schimbă faptul că merită să explorăm în detaliu fiecare dintre aceste funcții API pentru a ne asigura că am acoperit tot ce trebuie să știți atunci când lucrați cu ei.
Pentru restul acestui articol, presupun următoarele:
tutsplus-metadata.php
setat în directorul temei dvs. și este inclus în tema proprie functions.php
fişier.După cum am folosit în toate articolele anterioare, folosesc următoarele aplicații:
În cele din urmă, toate metadatele cu care vom lucra sunt stocate în wp_commentmeta
tabela de baze de date, astfel încât toate capturile de ecran pe care le vedeți din baza de date vor fi din tabelul respectiv.
Spre deosebire de unele din celelalte tabele de metadate pe care le-am văzut, wp_commentmeta
tabelul pornește gol (presupunând că lucrați cu o versiune relativ nouă de WordPress).
Acest lucru este bun, deoarece ne va da o ardezie curată, de felul acesta, pe care să o folosim atunci când examinăm diferitele funcții API. Rețineți că pentru toate exemplele de mai jos vom asigura că toate acestea se întâmplă pe Salut Lume! post. Această postare are ID-ul de 1. Dacă doriți să utilizați o altă pagină, pur și simplu înlocuiți-o 1 cu identificarea postului în cauză.
Cu toate acestea, să începem să ne uităm la ceea ce este disponibil.
Pentru a începe să adăugați metadate la comentariile noastre, este important să examinați wp_comments
tabel pentru a vedea ce comentarii există deja. Dacă lucrați cu o instalare proaspătă de WordPress, atunci probabil veți vedea o singură înregistrare:
Acesta este comentariul implicit care este livrat cu WordPress și se va face bine pentru exemplele pe care le vom folosi.
Dacă, pe de altă parte, lucrați cu o bază de date plină de comentarii, nici o problemă! Tot ce trebuie să știți este ce comentariu lucrați (prin ID-ul său) și asigurați-vă că sunteți în concordanță cu codul pe care îl folosim mai jos.
Ca și în cazul altor API-uri pe care le-am examinat în această serie, adăugarea metadatelor la comentarii vine în două forme: unice și non-unice. O să revizuim amândouă.
add_comment_meta
funcția acceptă trei parametri și un al patrulea parametru opțional. Dacă treceți Adevărat
ca al patrulea parametru, atunci metadatele vor fi adăugate numai dacă cheia meta specificată nu există.
Are sens? Hai să aruncăm o privire. Mai întâi, vom seta o funcție care va adăuga câteva metadate asociate primului comentariu (dar va face acest lucru numai pe postul care are ID-ul de 1):
Observați că am trecut parametrul adevărat. De fiecare dată când actualizez pagina, WordPress va vedea că vreau ca această valoare să fie unică, astfel încât să nu adauge mai multe informații la tabela de baze de date asociată acelei meta chei.
Adăugarea de metadate non-unice
Dacă, pe de altă parte, vreau să asociez mai multe valori cu aceeași cheie meta, aș elimina parametrul adevărat. De exemplu, utilizați următorul cod:
Și apoi reîmprospătați pagina, de exemplu, de trei ori. Dacă totul merge conform așteptărilor, puteți vedea trei înregistrări noi, fiecare conținând un număr aleator generat de apelul către
rand ()
în argumentul valorii meta.E destul de ușor să ții dreptate, nu? Dacă doriți o singură valoare asociată unei singure chei, atunci treceți
Adevărat
ca al patrulea argument opțional; în caz contrar, nu specificați nimic.Actualizarea comentariului Meta
Dacă doriți să actualizați metadatele de comentariu existente, atunci este important să cunoașteți codul de comentariu, tasta meta și valoarea meta. Aceasta înseamnă că WordPress va privi cheia meta specificată și o va asocia cu valoarea meta specificată.
Dacă există valoarea meta, atunci aceasta va fi suprascrisă. Dacă valoarea meta nu există, atunci aceasta va fi creată. Observați în ultima propoziție că există puțină funcționalitate pe care o puteți utiliza atunci când adăugați metadate: dacă doriți să aveți o piesă unică de informații scrise în tabelul de metadate, atunci puteți utiliza
update_comment_meta
și o va scrie ca o valoare unică.Acest lucru poate duce la un pic de cod confuz (deoarece se citește ca și cum ar fi actualizarea ceva care nu există), dar, de asemenea, vă permite să impuneți că numai o singură înregistrare va exista pentru tasta meta dată.
Ce se întâmplă când există o cheie meta asociată cu mai multe valori meta? În acest caz, trebuie să știți valoarea pe care vreți să o înlocuiți. În unele cazuri, s-ar putea să știți exact ce este acesta. În alte cazuri, este posibil să fie nevoie să preluați informațiile pentru ao găsi (pe care o vom acoperi în secțiunea următoare).
Presupunând că vrem să actualizăm una dintre înregistrările pe care le-am creat, cum ar fi unul din numerele aleatoare pe care le-am văzut în exemplul de mai sus, îl putem căuta folosind baza de date a bazei de date:
Și specificați-l ca fiind valoarea precedentă în următorul cod:
După aceasta, putem reîmprospăta pagina, aruncăm o privire în baza noastră de date și vedem schimbarea. Rețineți că munca pe care tocmai am făcut-o este relevantă pentru un mediu de dezvoltare și nu este modul în care ați proceda în acest fel în procesul de producție.
În schimb, este posibil să fie necesar să executați o interogare sau să preluați un set de valori înainte de a le actualiza. Aceasta ne conduce în subiectul următor.
Returnați comentariul Meta
De fiecare dată când preluați metadatele de comentariu, trebuie să decideți dacă doriți să preluați o singură valoare sau toate valorile asociate meta cheie specificată.
Poate că un alt mod de a privi acest lucru este după cum urmează: Dacă au fost adăugate mai multe fragmente de metadate cu aceeași cheie meta (pe care le-am acoperit în Adăugarea de metadate unice mai sus), atunci probabil că veți dori să preluați întreaga colecție de înregistrări.
Dacă, pe de altă parte, doriți doar să preluați o înregistrare deoarece știți că este unică sau pentru că a fost creată cu
update_comment_meta
, atunci doriți ca WordPress să vă returneze într-o singură valoare.
get_comment_meta
funcția necesită trei argumente și un al patrulea opțional în funcție de ceea ce doriți să preluați.Preluarea unei matrice
Să presupunem că doriți să preluați o colecție de valori asociate unei singure metae-cheie. Pentru a face acest lucru, ați face un apel
get_comment_meta
și ați specifica codul de comentariu și tasta meta.În codul de mai sus, îl tipărim în browserul web, dar veți putea să lucrați cu aceste date în orice fel doriți după ce le-ați recuperat. Cel mai important lucru de observat, totuși, este faptul că valoarea este returnată ca o matrice.
Preluarea unei valori unice
Dacă doriți să preluați o singură valoare, trebuie doar să specificați codul de comentariu și tasta meta din
get_comment_meta
funcţie. Dacă se întâmplă să se ocupe de o cheie meta cu valori multiple, atunci prima valoare care a fost creată este ceea ce va fi returnat.De exemplu, să presupunem că există trei înregistrări asociate cu o cheie meta și doriți doar să preluați o valoare. Codul dvs. va arăta astfel:
Iar valoarea rezultată va arăta astfel:
șir (9) "967432645"Alternativ, dacă știți că datele sunt unice, atunci codul va arăta în continuare la fel ca și valoarea returnată.
Singura diferență este că primul exemplu a fost preluat dintr-un set de înregistrări multiple, iar al doilea exemplu a fost preluat dintr-o singură înregistrare. De asemenea, rețineți că, dacă aveți de-a face cu o valoare unică, atunci aceasta va fi returnată în continuare ca o matrice, dar o singură matrice index.
Acest lucru este important de reținut, deoarece dacă intenționați să faceți orice tip de comparație, în special la o valoare de alt tip, cum ar fi un număr întreg, atunci va trebui să apucați valoarea din matrice și probabil că doriți să faceți tipul înainte de a face o comparație.
Ștergerea comentariului Meta
Ștergerea metadatelor este o operație simplă: necesită codul de comentariu, o cheie meta și o valoare meta opțională.
Dacă nu specificați valoarea meta, atunci toate înregistrările asociate meta-cheie vor fi eliminate. Dacă, totuși, specificați valoarea meta, atunci numai acea singură înregistrare va fi eliminată.
Eliminarea valorilor unice
În acest exemplu, presupunem că știm că există o singură bucată de metadate pentru o cheie meta dată. Aceasta înseamnă că tasta meta trebuie să fie unică pentru fiecare utilizator, așadar poate folosi ceva de genul unui ID generat în mod unic, o ștampilă de timp sau ceva similar.
Pentru a elimina o valoare unică, trebuie doar să transmitem ID-ul comentariului și cheia meta:
Înainte de a executa acest cod, baza de date ar trebui să arate cam așa:
După ce actualizați pagina, aruncați o privire la baza de date și ar trebui să vedeți că înregistrarea a fost eliminată și baza de date ar trebui să arate astfel:
Vom vorbi un pic mai multe despre măsurile de precauție pe care trebuie să le luați atunci când ștergeți datele din secțiunea următoare.
Eliminarea valorilor non-unice
În alte situații, să presupunem că există mai multe valori asociate cu o singură cheie meta. Am văzut acest lucru de nenumărate ori în acest articol. Dacă doriți să ștergeți toate înregistrările asociate cu o cheie meta, atunci nu este necesar să specificați o valoare meta.
Asta înseamnă că, dacă treci doar un ID de comentariu și un meta-cheie la
delete_comment_meta
funcția, va elimina toate piesele de metadate de comentariu. Scrieți și executați următorul cod:Actualizați-vă pagina și apoi revizuiți baza de date. Dacă nu există probleme, baza dvs. de date ar trebui să fie clară din toate înregistrările care au avut anterior acel meta-cheie:
Dar rețineți că eliminarea datelor dintr-o bază de date poate fi periculoasă, mai ales dacă ștergeți accidental ceva ce nu ați vrut să îl ștergeți. În acest scop, este important să păstrați copii de rezervă ale bazei dvs. de date în medii de producție, astfel încât să le puteți restaura întotdeauna dacă se întâmplă ceva.
Mai mult, acest lucru demonstrează de ce este atât de important să existe un mediu de dezvoltare locală și un mediu de pregătire pentru testarea înainte de implementarea codului într-un mediu de producție.
Codul sursă complet
După cum se prevede în întreaga serie, iată o copie a întregului cod sursă pe care l-am abordat în acest articol. Este complet documentat și include comentarii care nu sunt prezentate în unele secțiuni de mai sus.
Rețineți că dacă includeți acest cod împreună cu restul articolelor din serie, va trebui să fiți atenți. Deoarece totul este înregistrat cu același cârlig, este posibil să ajungeți la rezultate ciudate.
Pentru a combate acest lucru, recomand unul dintre următoarele două scenarii:
- Creați trei fișiere separate: una pentru fiecare dintre tipurile de API-uri de metadate pe care le-am examinat.
- Comentează
add_filter
apeluri, cu excepția celor cu care lucrați în prezent.Oricare dintre acestea va face mai ușor să lucrați cu tot codul pe care l-am acoperit până acum.
Concluzie
Indiferent dacă lucrați cu un API pentru metadate sau cu unul dintre celelalte API-uri, fiecare dezvoltator WordPress trebuie să aibă întotdeauna acces rapid la Codul WordPress pentru a cerceta rapid ce API-uri sunt disponibile și cum ar trebui folosite.
Pe măsură ce am lucrat prin această serie, ar trebui să vedeți în ce mod este compatibil API-ul proiectat în jurul metadatelor. Acest lucru face ca un API puternic, ușor de utilizat și eficient, să extindă unele dintre funcționalitățile core WordPress.
În plus, am menționat că există un alt API pentru metadate introdus în WordPress 4.4. Am de gând să acopăr că într-o serie viitoare, dar va necesita o examinare a unora dintre celelalte funcționalități care se bazează pe ea.
Pentru moment, am acoperit o mulțime de materiale pentru a vă ajuta să vă ridicați abilitățile WordPress existente. Până la următorul articol, rețineți că toate cursurile și tutorialele mele sunt disponibile pe pagina mea de profil și puteți citi mai multe articole despre dezvoltarea WordPress și WordPress pe blogul meu.
WordPress are o economie activă. Există teme, pluginuri, biblioteci și multe alte produse care vă ajută să vă construiți site-ul și proiectul. Natura open source a platformei o face de asemenea o opțiune excelentă din care vă puteți îmbunătăți abilitățile de programare. Indiferent de situație, puteți vedea ce avem la dispoziție în piața Envato Marketplace.
Simțiți-vă liber să urmați-mi și pe Twitter la @tommcfarlin, unde vorbesc despre diverse practici de dezvoltare software, dintre care multe sunt relevante pentru dezvoltarea web-ului și multe dintre acestea sunt în mod special orientate către WordPress.
Ca și în cazul tuturor articolelor mele, vă rugăm să nu ezitați să lăsați orice întrebări sau comentarii în feed-ul de mai jos și mă voi strădui să răspund la fiecare dintre ele.
Resurse