web-dev-qa-db-fra.com

Où sont stockés les types personnalisés wordpress?

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?

20
Noor

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
13
Bob Jones

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.

12
Milo

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 ...

via SQL

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             |
+----------------------+

via WP CLI

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                |
 +---------------------+-----------------------+--------------+--------------+--------+---------------------+
5
Craig Wayne

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 .

4
Manny Fleurmond

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".

1
Raj