¿Dónde se almacenan los tipos personalizados de WordPress?

20

¿Dónde se almacenan los tipos personalizados? Porque cuando se crea un tipo personalizado, en wp_posts, el tipo de publicación se establece en <new_custom_post_type>. ¿Pero dónde se almacenan los detalles del nuevo tipo de publicación personalizada?

Noor
fuente

Respuestas:

14

Finalmente encontré los datos del tipo de publicación personalizada. Se almacena en la tabla wp_post 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 recuperará todos los datos asociados con el tipo de mensaje personalizado "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
Bob Jones
fuente
12

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

Milo
fuente
hmmmm, ok, eso fue cuando estaba tratando de buscar la información en la base de datos, no los estaba viendo, ¡gracias!
Noor
1
Eso no es cierto en absoluto.
Bainternet
3
Esto puede ser cierto para la definición del tipo de publicación personalizada, pero no aborda la cuestión de dónde se almacenan los datos asociados con cada instancia de un tipo de publicación personalizada.
Bob Jones
@BobJones, la pregunta menciona la wp_poststabla, por lo que parece bastante claro que saben dónde se almacenan los datos de la publicación. pero si tiene una interpretación diferente de la pregunta, entonces quizás debería agregar su propia respuesta.
Milo
7

Como mencionó @milo en esta respuesta

Los tipos de publicaciones en realidad no se almacenan por separado en la base de datos, sin embargo, dicho esto ...

vía SQL

Puede ver todos los tipos de publicaciones PÚBLICAS guardadas utilizando la siguiente consulta SQL

SELECT DISTINCT( post_type ) FROM wp_posts;

Lo que generará algo similar a:

+----------------------+
| post_type            |
+----------------------+
| attachment           |
| competition          |
| custom_css           |
| customize_changeset  |
| deprecated_log       |
| experts              |
| magazine             |
| nav_menu_item        |
| page                 |
| post                 |
| revision             |
+----------------------+

a través de WP CLI

Además, si tiene acceso a wp cli , puede ejecutar:

wp post-type list

Lo que generará algo 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                |
 +---------------------+-----------------------+--------------+--------------+--------+---------------------+
Craig Wayne
fuente
Esta es una mejor respuesta al OP. Gracias.
MarsAndBack
4

Puede usar la función get_post_typespara obtener información sobre todos y cada uno de los tipos de publicaciones que están activos en ese momento. Para obtener información sobre un tipo de publicación específico, use get_post_type_object.

Manny Fleurmond
fuente
3
+1 - Para hacer que los tipos de publicación devueltos sean get_post_typessolo personalizados, el parámetro _builtinse puede establecer enfalse
Nicolai
1

El valor predeterminado de WordPress viene con algunos tipos de publicaciones de muestra como páginas, publicaciones, etc. Wordpress también ha dado la opción de crear nuestros propios tipos de publicaciones personalizadas. Tanto las publicaciones predeterminadas como las personalizadas se almacenan en una sola tabla "wp_posts" al diferenciar todos los tipos de publicaciones según la columna "post_type" en la tabla "wp_posts".

Por ejemplo:
páginas -> post_type = "página",
testimonios -> post_type = "testimonios",
etc.

Para obtener más información sobre este post_types, que estaría disponible en la tabla "wp_postmeta".

Raj
fuente