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

20

Où sont stockés les types personnalisés? Parce que lorsqu'un type personnalisé est créé, dans wp_posts, le type de publication est défini sur <new_custom_post_type>. Mais où sont stockés les détails du nouveau type de message personnalisé ??

Noor
la source

Réponses:

14

J'ai finalement trouvé les données de type de 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ù la meta_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 publication 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
Bob Jones
la source
12

Les détails des types de publication personnalisés ne sont stockés nulle part, ils sont chargés lors de l'exécution avec chaque demande via des register_post_typeappels.

Milo
la source
hmmmm, ok, c'est y lorsque j'essayais de rechercher les informations dans la base de données, je ne les voyais pas, merci!
Noor
1
Cela ne veut pas du tout vrai.
Bainternet
3
Cela peut être vrai de la définition du type de publication personnalisé, mais cela ne résout pas la question de l'emplacement de stockage des données associées à chaque instance d'un type de publication personnalisé.
Bob Jones
@BobJones la question mentionne la wp_poststable, il semble donc assez clair qu'ils savent où les données de publication sont stockées. mais si vous avez une interprétation différente de la question, vous devriez peut-être ajouter votre propre réponse.
Milo
7

Comme mentionné par @milo dans cette réponse

Les types de messages ne sont pas réellement stockés séparément dans la base de données, mais cela étant dit ...

via SQL

vous pouvez afficher tous les types de publication PUBLIC enregistrés à l'aide de la requête SQL suivante

SELECT DISTINCT( post_type ) FROM wp_posts;

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

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                |
 +---------------------+-----------------------+--------------+--------------+--------+---------------------+
Craig Wayne
la source
C'est une meilleure réponse au PO. THX.
MarsAndBack
4

Vous pouvez utiliser la fonction get_post_typespour obtenir des informations sur tous les types de publication actifs à ce moment-là. Pour obtenir des informations sur un type de publication spécifique, utilisez get_post_type_object.

Manny Fleurmond
la source
3
+1 - Pour que les types de messages renvoyés get_post_typesne soient que des messages personnalisés, le paramètre _builtinpeut être défini surfalse
Nicolai
1

Par défaut, WordPress est livré avec quelques exemples de types de publication tels que des pages, des publications, etc. Wordpress a également permis de créer nos propres types de publication personnalisés. Les publications par défaut et personnalisées sont stockées dans une seule table "wp_posts" en différenciant tous les types de publications en fonction de la colonne "post_type" dans la table "wp_posts".

Par exemple:
pages -> post_type = "page",
testiminials -> post_type = "testimonials"
etc.

Pour obtenir plus d'informations sur ces post_types, qui seraient disponibles à la table "wp_postmeta".

Raj
la source