web-dev-qa-db-fra.com

Tag.php ne pas afficher les messages avec le tag

J'ai un CPT et dans son argumentation, j'appelle la taxonomie post_tag. Lorsque je crée un fichier tag.php, il n’affiche aucune publication pour cette balise. Mon tag.php:

<?php get_header(); ?>

    <section class="row">
        <div class="col-md-7">
            <p>Tag: <?php single_tag_title(); ?></p>
            <?php if ( have_posts() ): while ( have_posts() ): the_post(); ?>
                <h1><?php the_title(); ?></h1>
            <?php endwhile;     
            else: ?>
                <p>not working</p>          
            <?php endif; ?>             
        </div>
        <?php get_sidebar(); ?>
    </section>

<?php get_footer(); ?>

Dans mes recherches, je suis tombé sur " tag.php ne fonctionne pas avec les balises sur un type de publication personnalisé post? " mais j'utilise ce que je croyais être la valeur par défaut pour les balises post_tag. Lorsque je faisais référence aux paramètres de balise WP_Query(), il ne montre pas comment prendre en compte la balise sur laquelle vous avez cliqué. Lorsque je recherche tag.php, je reçois Modèles de balises et il ne montre aucun exemple prenant en compte toutes les balises. Quelle est la bonne façon d'écrire une WP_Query() pour tous les messages relatifs à la balise? Je suis tombé sur wp_get_post_tags() après quelques recherches et lectures " Wordpress obtient des pages liées (balises) - wp_get_post_tags " mais je ne comprends pas la réécriture de tag.php et le codex ne contient aucun exemple. Alors, comment puis-je écrire correctement mon tag.php pour retourner tous les messages pour le tag cliqué?

2

Je l'ai compris grâce à le commentaire de Pieter :

Dans functions.php j'ai ajouté:

function tag_filter($query) {
  if ( !is_admin() && $query->is_main_query() ) {
    if ($query->is_tag) {
      $query->set('post_type', array( 'custom_post_type', ));
    }
  }
}
add_action('pre_get_posts','tag_filter');
5

Cela a parfaitement fonctionné pour moi. Je voulais aussi inclure d'autres types d'articles, alors j'ai ajouté:

$query->set('post_type', array( 'custom_post_type', 'post', 'page' ));
0
lozov