Unde sunt stocate tipurile personalizate în WordPress?
Unde sunt stocate tipurile personalizate? Deoarece atunci când este creat un tip personalizat, în wp_posts, tipul postării este setat la <new_custom_post_type>
. Dar unde sunt stocate detaliile noului tip de postare personalizat??
Am găsit în sfârșit datele pentru tipul de postare personalizat. Acestea sunt stocate în tabela wp_post unde post_type = tipul de postare personalizat (de exemplu "products"). Datele câmpurilor (coloanelor) sunt stocate în wp_postmeta unde meta_key este numele coloanei și meta_value este valoarea coloanei.
Această interogare va returna toate datele asociate cu tipul de postare personalizat "products":
SELECT P.ID, P.post_title, M.meta_key, M.meta_value
FROM wp_posts AS P
INNER JOIN wp_postmeta AS M ON M.post_id = P.ID
WHERE P.post_type = 'products' and P.post_status = 'publish'
ORDER BY post_title, meta_key

Detaliile tipurilor personalizate de postări nu sunt stocate nicăieri, ele sunt încărcate la fiecare cerere prin apelurile register_post_type
.

hmmmm, ok, deci de asta nu le-am găsit în baza de date când căutam informațiile, mulțumesc!

Aceasta poate fi adevărat pentru definiția tipului de postare personalizată, dar nu răspunde la întrebarea unde sunt stocate datele asociate fiecărei instanțe a unui tip de postare personalizată.

După cum a menționat @milo în acest răspuns
Tipurile de postări nu sunt de fapt stocate separat în baza de date, dar având în vedere acest lucru...
Prin SQL
Puteți vizualiza toate tipurile de postări PUBLICE salvate folosind următoarea interogare SQL:
SELECT DISTINCT( post_type ) FROM wp_posts;
Care va afișa ceva similar cu:
+----------------------+
| post_type |
+----------------------+
| attachment |
| competition |
| custom_css |
| customize_changeset |
| deprecated_log |
| experts |
| magazine |
| nav_menu_item |
| page |
| post |
| revision |
+----------------------+
Prin WP CLI
În plus, dacă aveți acces la wp cli, puteți rula:
wp post-type list
Care va afișa ceva de genul:
+---------------------+-----------------------+--------------+--------------+--------+---------------------+
| name | label | description | hierarchical | public | capability_type |
+---------------------+-----------------------+--------------+--------------+--------+---------------------+
| post | Postări | | | 1 | post |
| page | Pagini | | 1 | 1 | page |
| attachment | Media | | | 1 | post |
| revision | Revizii | | | | post |
| nav_menu_item | Elemente de meniu | | | | post |
| custom_css | CSS Personalizat | | | | post |
| customize_changeset | Setări de modificări | | | | customize_changeset |
| deprecated_log | Apeluri învechite | | | | post |
+---------------------+-----------------------+--------------+--------------+--------+---------------------+

Puteți utiliza funcția get_post_types
pentru a obține informații despre toate tipurile de postări care sunt active în acel moment. Pentru a obține informații despre un anumit tip de postare, folosiți get_post_type_object
.

WordPress vine implicit cu câteva tipuri de postări predefinite, cum ar fi pagini, articole etc. WordPress oferă și opțiunea de a crea propriile tipuri personalizate de postări. Atât postările implicite, cât și cele personalizate sunt stocate într-un singur tabel numit "wp_posts", diferențiate în funcție de coloana "post_type" din tabelul "wp_posts".
Exemple:
pagini --> post_type="page",
recomandări --> post_type="testimonials"
etc.
Pentru a obține mai multe informații despre aceste tipuri de postări, acestea sunt disponibile în tabelul "wp_postmeta".
