Où sont stockés les types personnalisés? En effet, lorsqu'un type personnalisé est créé, dans wp_posts, le type de publication est défini sur <new_custom_post_type>
. Mais où sont les détails du nouveau type de message personnalisé stockés?
J'ai finalement trouvé les données de type message personnalisé. Il est stocké dans la table wp_post où post_type = type de publication personnalisé (par exemple, "produits"). Les données de champ (colonne) sont stockées dans wp_postmeta où méta_key est le nom de la colonne et meta_value est la valeur de la colonne.
Cette requête ramènera toutes les données associées au type de message personnalisé "produits":
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
Les détails des types d'articles personnalisés ne sont stockés nulle part, ils sont chargés au moment de l'exécution à chaque demande via register_post_type
calls.
Comme mentionné par @milo dans cette réponse
Les types de message ne sont pas stockés séparément dans la base de données, mais cela dit ...
vous pouvez afficher tous les typesPUBLICpost enregistrés à l'aide de la requête SQL suivante
SELECT DISTINCT( post_type ) FROM wp_posts;
Ce qui produira quelque chose de similaire à:
+----------------------+
| post_type |
+----------------------+
| attachment |
| competition |
| custom_css |
| customize_changeset |
| deprecated_log |
| experts |
| magazine |
| nav_menu_item |
| page |
| post |
| revision |
+----------------------+
De plus, si vous avez accès à wp cli , vous pouvez exécuter:
wp post-type list
Ce qui produira quelque chose comme:
+---------------------+-----------------------+--------------+--------------+--------+---------------------+
| 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 |
+---------------------+-----------------------+--------------+--------------+--------+---------------------+
Vous pouvez utiliser la fonction get_post_types
pour obtenir des informations sur tous les types de publication actifs à ce moment-là. Pour obtenir des informations sur un type de message spécifique, utilisez get_post_type_object
.
WordPress par défaut est livré avec des exemples de types de publication tels que pages, publications, etc. Wordpress a également donné la possibilité de créer nos propres types de publication personnalisés. Les publications par défaut et personnalisées sont stockées dans la table unique "wp_posts" en différenciant tous les types de publication en fonction de la colonne "post_type" de la table "wp_posts".
Par exemple:
pages -> post_type = "page",
testiminials -> post_type = "testimonials"
etc
Pour récupérer plus d'informations sur ce post_types, disponible à la table "wp_postmeta".