Înțelegerea și lucrul cu mesajele din WordPress

La fel ca multe exemple de terminologie WordPress, termenul "posturi" poate fi confuz, deoarece se referă la un tip de post, precum și la un tip de conținut stocat într-o anumită tabelă de baze de date. 

Aici, voi clarifica diferența dintre cele două și uita-te la tipurile de posturi în detaliu.

În partea anterioară a acestei serii, am examinat diferitele tipuri de conținut din WordPress, care sunt stocate într-un număr de tabele de baze de date diferite. Acestea sunt:

  • posturi
  • utilizatori
  • comentarii
  • Link-uri

În acest tutorial, voi examina posturile în mai multe detalii și voi schița tipurile post, relațiile dintre ele și modul în care înțelegerea tuturor acestor lucruri vă poate ajuta să lucrați cu ei.

Definirea postărilor

În primul rând, voi începe prin definirea posturilor și a modului în care acestea diferă de postări (da, este confuz și adăugând o scrisoare de capital nu face lucrurile cu mult mai clare!):

  • A post este un element de conținut stocat în wp_posts masa. Fiecare are a post_type atribuit lui, care ar putea fi post, pagină sau altceva.
  • Postul este un tip de postare, utilizat pentru postări de blog sau știri, în funcție de tipul de site pe care îl dezvoltați.

wp_posts tabelul este prezentat în imaginea de mai jos.

Are sens? Dacă nu, citiți mai departe, toate vor deveni clare!

Tipuri de posturi în WordPress

WordPress vine cu cinci tipuri de posturi construite în:

  • Post
  • Pagină
  • Atașament
  • Revizuire
  • Element de meniu pentru navigare

În plus, puteți adăuga propriile tipuri de postări personalizate utilizând register_post_type () , ceea ce înseamnă că instalarea dvs. WordPress poate avea cât mai multe tipuri de posturi după cum doriți. Fiecare tip de postare are aceeași stare ca și tipurile de posturi încorporate - uneori am auzit de oameni care se gândeau că "tipul postului personalizat" este un tip de post în sine. Nu este!

O să ilustrez asta cu un exemplu. Când scrieți o interogare personalizată pentru postări, ați adăuga următoarele la argumentele interogării:

'post_type' => 'post'

Dar dacă ați creat un tip de post particularizat numit my_post_type, ați interogat-o cu următoarele:

'post_type' => 'my_post_type'

Puteți folosi asta post_type argument pentru a interoga orice tip de post, și, într-adevăr, puteți interoga mai multe tipuri de posturi, dacă doriți. Nu voi intra în detalii cu privire la acest lucru, deoarece este în afara scopului acestui tutorial, dar puteți citi mai multe pe pagina WordPress Codex pentru WP_Query.

Înțelegerea tipurilor de post implicite

Să aruncăm o privire rapidă asupra tipurilor de posturi încorporate, a modului în care acestea sunt similare cu celelalte și despre cum diferă acestea. Rețineți că în tabelul de mai jos folosesc termenul post în sens generic pentru a descrie conținutul tuturor tipurilor de postări.

Tip post Folosit pentru notițe
Post Articole de blog sau similare Tip post post principal - listat pe pagina principală de blog
Pagină Pagini statice Concepute pentru a fi afișate singure - nu sunt utilizate în general în arhive (deși pot fi).
Paginile pot avea părinți, care sunt definiți folosind post_parent câmpul din înregistrarea pentru pagina copilului.
Fiecare pagină poate avea mai mulți copii, dar numai un părinte.
Atașament Documente și imagini (care pot sau nu să fie atașate unui post) Media încărcată într-o postare va avea ID-ul acelei postări în cadrul acesteia post_parent camp. Imaginile încărcate prin ecranul Media din tabloul de bord vor avea acel câmp necompletat. guid câmpul este utilizat pentru a stoca adresa URL a fișierului media.
Revizuire Revizuiri individuale pentru fiecare post Fiecare revizuire este atașată unui post: ID-ul din postul respectiv vor fi stocate în versiunea reviziei post_parent camp.
Articole din meniul de navigare Articole de meniu de navigare individuală Fiecare meniu va conține un număr de elemente de navigare, fiecare dintre ele fiind stocată ca post. menu_order câmpul este utilizat pentru a stoca informații despre ordinea elementelor din meniul de navigare și datele suplimentare, cum ar fi elementul meniu destinație și părinte, sunt stocate ca înregistrări în wp_postmeta masa.

Tipurile de postări personalizate pot fi înregistrate pentru a se comporta în același mod ca oricare dintre tipurile de posturi încorporate (cu excepția atașament), dar implicit este post. Fiecare dintre tipurile de posturi are interfața proprie.

Relațiile dintre posturi

După cum puteți vedea din tabelul de mai sus, post_parent câmpul este unul important, deoarece stochează informații despre relațiile dintre posturile diferite. Acestea includ:

  • părinte și copii
  • revizuirile și posturile la care se referă
  • atașamentele și postarea la care au fost încărcate

Puteți utiliza funcția post_parent câmp în diferite moduri în interogările dvs. De exemplu, pentru a interoga paginile copil dintr-o anumită pagină, ați folosi următoarele, unde ID-ul este ID-ul paginii părinte:

'post_parent' => 'ID'

Ați putea utiliza o interogare similară pentru a afișa atașamentele încărcate într-o anumită postare sau, alternativ, ați putea interoga atașamente fără nici un părinte (adică cele încărcate direct pe ecranul media din tabloul de bord). 

Pentru a face acest lucru, ați folosi următorul argument:

'post_parent' => '0'

Este foarte puțin probabil ca vreodată să fiți nevoit să solicitați revizuiri, deoarece doriți doar ca vizitatorii să vă vadă conținutul publicat.

Puteți utiliza, de asemenea post_parent_in cu o serie de ID-uri pentru identificarea copiilor dintr-o serie de postări sau pagini.

rezumat

Înțelegerea wp_posts tabel și ceea ce stochează este o parte esențială a înțelegerii bazei de date WordPress. După cum ați văzut, wp_posts tabelul este utilizat pentru a stoca mesaje, care include cinci tipuri de posturi încorporate (inclusiv Post), precum și orice număr de tipuri de posturi personalizate pe care le adăugați. 

În tabel se stochează, de asemenea, date despre relațiile dintre posturi, în post_parent camp.

Cod