Dove sono memorizzati i tipi personalizzati di WordPress?
Dove sono memorizzati i tipi personalizzati? Perché quando viene creato un tipo personalizzato, in wp_posts, il post type viene impostato su <new_custom_post_type>
. Ma dove sono memorizzati i dettagli del nuovo tipo di post personalizzato?

Finalmente ho trovato i dati del custom post type. Sono memorizzati nella tabella wp_post dove post_type corrisponde al custom post type (ad esempio "products"). I dati dei campi (colonne) sono memorizzati in wp_postmeta dove meta_key è il nome della colonna e meta_value è il valore della colonna.
Questa query restituirà tutti i dati associati al custom post type "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

I dettagli dei custom post type non sono memorizzati da nessuna parte, vengono caricati in runtime ad ogni richiesta tramite chiamate register_post_type
.

hmmmm, ok, ecco perché quando cercavo le informazioni nel database, non le trovavo, grazie!

Questo può essere vero per la definizione del custom post type, ma non risponde alla domanda su dove siano memorizzati i dati associati a ciascuna istanza di un custom post type.

Come menzionato da @milo in questa risposta
I Post Type in realtà non sono memorizzati separatamente nel database, tuttavia detto questo...
via SQL
puoi visualizzare tutti i post type PUBBLICI salvati utilizzando la seguente query SQL
SELECT DISTINCT( post_type ) FROM wp_posts;
Che produrrà un output simile a:
+----------------------+
| post_type |
+----------------------+
| attachment |
| competition |
| custom_css |
| customize_changeset |
| deprecated_log |
| experts |
| magazine |
| nav_menu_item |
| page |
| post |
| revision |
+----------------------+
via WP CLI
Inoltre, se hai accesso a wp cli, puoi eseguire:
wp post-type list
Che produrrà un output simile a:
+---------------------+-----------------------+--------------+--------------+--------+---------------------+
| name | label | description | hierarchical | public | capability_type |
+---------------------+-----------------------+--------------+--------------+--------+---------------------+
| post | Articoli | | | 1 | post |
| page | Pagine | | 1 | 1 | page |
| attachment | Media | | | 1 | post |
| revision | Revisioni | | | | post |
| nav_menu_item | Voci di menu | | | | post |
| custom_css | CSS personalizzato | | | | post |
| customize_changeset | Changeset | | | | customize_changeset |
| deprecated_log | Chiamate deprecate | | | | post |
+---------------------+-----------------------+--------------+--------------+--------+---------------------+

Puoi utilizzare la funzione get_post_types
per ottenere informazioni su tutti i tipi di post attivi in quel momento. Per ottenere informazioni su un tipo di post specifico, utilizza get_post_type_object
.

WordPress include per impostazione predefinita alcuni tipi di contenuto campione come pagine, articoli ecc. WordPress offre anche la possibilità di creare i nostri tipi di contenuto personalizzati. Sia i contenuti predefiniti che quelli personalizzati vengono memorizzati in un'unica tabella "wp_posts", differenziando tutti i tipi di contenuto in base alla colonna "post_type" nella tabella "wp_posts".
Esempio:
pagine --> post_type="page",
testimonianze --> post_type="testimonials"
ecc.
Per ottenere maggiori informazioni su questi post_type, che sarebbero disponibili nella tabella "wp_postmeta".
