web-dev-qa-db-fra.com

Comment obtenir le type de message à partir d'un identifiant de catégorie?

J'essaie de trouver le type de message à partir d'un identifiant de catégorie.

Supposons que, lorsque j'ouvre une page de catégorie

localhost/project/foobaar/category/pen

Je veux savoir le type de message auquel la catégorie - le stylo est attaché. J'ai deux types de message personnalisés nommés "livre" et "copie" Si le stylo de catégorie est associé à un livre, il devrait alors renvoyer le type de message sous la forme "livre". catégorie de crayon dans "copie" post.

J'essayais de faire quelque chose comme ceci (j'ai l'identifiant de la catégorie stocké dans la variable, mais je suppose que l'identifiant de la catégorie du stylo est 12)

$args = array (
    posts_per_page => 1,
    category => '12' // category id of pen
    );
$posts = WP_Query( $args );

Et à partir de $ posts, je pourrais obtenir un post que je pourrais connaître, mais $ args utilise post_type par défaut en tant que 'posts' et mes posts peuvent être n'importe quoi.

Merci

1
Aftab

Vous pouvez simplement récupérer le premier message de la requête principale et voir quel type de message il s'agit:

if ( have_posts() ) {
    $post_type = $wp_query->posts[0]->post_type;
}

Si vous exécutez ce code directement dans un fichier de modèle principal, tout va bien, mais si c'est dans une fonction, vous devrez d'abord appeler global $wp_query;.

2
TheDeadMedic