web-dev-qa-db-fra.com

Obtenir la liste de tous les types de messages enregistrés

J'aimerais obtenir une liste (tableau) de tous les types de publication que j'ai enregistrés.

Justement, j'aimerais récupérer leurs limaces.

Quelqu'un pourrait-il m'aider? Merci!

3
unfulvio

La réponse de @ EAMann est correcte, mais il existe déjà une fonction de compilation dans WordPress permettant de récupérer tous les types de publication enregistrés: get_post_types

<?php
// hook into init late, so everything is registered
// you can also use get_post_types where ever.  Any time after init is usually fine.
add_action( 'init', 'wpse34410_init', 0, 99 );
function wpse34410_init() 
{
    $types = get_post_types( [], 'objects' );
    foreach ( $types as $type ) {
        if ( isset( $type->rewrite->slug ) ) {
            // you'll probably want to do something else.
            echo $type->rewrite->slug;
        }
    }
}
6
chrisguitarguy

Lorsque vous appelez register_post_type(), il ajoute votre nouveau type de publication à une variable globale appelée $wp_post_types. Ainsi, vous pouvez obtenir une liste de tous vos types de publication à partir de cela:

function get_registered_post_types() {
    global $wp_post_types;

    return array_keys( $wp_post_types );
}

La variable $wp_post_types est un tableau contenant vos définitions CPT, avec chaque ensemble d'arguments CPT (étiquettes, capacités, etc.) mappés sur le slug du CPT. En appelant array_keys(), vous obtiendrez un tableau des slug de vos CPT.

1
EAMann