¿Dónde se almacenan los tipos de contenido personalizados de WordPress?
¿Dónde se almacenan los tipos personalizados? Porque cuando se crea un tipo personalizado, en wp_posts, el post_type se establece como <new_custom_post_type>
. Pero ¿dónde se almacenan los detalles del nuevo tipo de contenido personalizado?
Finalmente encontré los datos del tipo de publicación personalizada. Se almacenan en la tabla wp_posts donde post_type = tipo de publicación personalizada (por ejemplo, "productos"). Los datos del campo (columna) se almacenan en wp_postmeta donde meta_key es el nombre de la columna y meta_value es el valor de la columna.
Esta consulta devolverá todos los datos asociados con el tipo de publicación personalizada "productos":
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

Los detalles de los tipos de entradas personalizadas no se almacenan en ningún lugar, se cargan en tiempo de ejecución con cada solicitud a través de llamadas a register_post_type
.

hmmmm, ok, por eso cuando estaba tratando de buscar la información en la base de datos, no la veía, ¡gracias!

Esto puede ser cierto en cuanto a la definición del tipo de publicación personalizado, pero no aborda la pregunta de dónde se almacenan los datos asociados con cada instancia de un tipo de publicación personalizado.

Como mencionó @milo en esta respuesta
Los tipos de publicación (Post Types) no se almacenan por separado en la base de datos, pero dicho eso...
Vía SQL
Puedes ver todos los tipos de publicación PÚBLICOS guardados usando la siguiente consulta SQL:
SELECT DISTINCT( post_type ) FROM wp_posts;
Lo cual generará una salida similar a:
+----------------------+
| post_type |
+----------------------+
| attachment |
| competition |
| custom_css |
| customize_changeset |
| deprecated_log |
| experts |
| magazine |
| nav_menu_item |
| page |
| post |
| revision |
+----------------------+
Vía WP CLI
Adicionalmente, si tienes acceso a wp cli, puedes ejecutar:
wp post-type list
Lo cual generará una salida como:
+---------------------+-----------------------+--------------+--------------+--------+---------------------+
| name | label | description | hierarchical | public | capability_type |
+---------------------+-----------------------+--------------+--------------+--------+---------------------+
| post | Posts | | | 1 | post |
| page | Pages | | 1 | 1 | page |
| attachment | Media | | | 1 | post |
| revision | Revisions | | | | post |
| nav_menu_item | Navigation Menu Items | | | | post |
| custom_css | Custom CSS | | | | post |
| customize_changeset | Changesets | | | | customize_changeset |
| deprecated_log | Deprecated Calls | | | | post |
+---------------------+-----------------------+--------------+--------------+--------+---------------------+

¿Dónde se almacena la información? No puedo encontrarla en la base de datos

Puedes usar la función get_post_types
para obtener información sobre cualquier tipo de publicación que esté activo en ese momento. Para obtener información sobre un tipo de publicación específico, usa get_post_type_object
.

WordPress viene por defecto con algunos tipos de contenido (post types) como páginas, entradas, etc. WordPress también ofrece la opción de crear nuestros propios tipos de contenido personalizados. Tanto los tipos por defecto como los personalizados se almacenan en una única tabla llamada "wp_posts", diferenciándose entre sí por la columna "post_type" en la tabla "wp_posts".
Ejemplo:
páginas --> post_type="page",
testimonios --> post_type="testimonials"
etc.
Para obtener más información sobre estos tipos de contenido, se puede consultar la tabla "wp_postmeta".
