web-dev-qa-db-fra.com

Archive pour la taxonomie personnalisée répertorie toutes les publications au lieu de la taxonomie actuelle

J'utilise le plug-in Types pour une publication personnalisée de type "Session", qui a la taxonomie personnalisée "Semester". J'aimerais maintenant créer une page d'archive pour chaque semestre, qui est générée automatiquement. Créer un fichier taxonomy-semester.php ne posait pas de problème, toutefois, cette page affiche toujours le contenu de TOUS les semestres, et pas seulement celui en cours pointé par l'URL.

Par exemple./semestre/hiver2015 et/semestre/été2016 afficheront le contenu pour l'hiver 2015 (ou tout ce qui se trouve dans la base de données). Je suis à peu près sûr que le problème réside dans mes arguments de requête, mais peu importe ce que j'essaie, je ne peux pas obtenir que cette page affiche uniquement le contenu du semestre correspondant. Voici mon code:

<?php get_header(); ?>
<section class="index-post-list">     

<?php 

$term = $wp_query->queried_object;
$getterm = $term->slug; // get current slug (E.g. winter2015)

    $args = (array(
    'post_type' => 'session', 
    'tax_query' => array(                     
        'taxonomy' => 'semester',
        'field' => 'slug',
        'terms' => $getterm,
        'include_children' => true,          
        'operator' => 'IN' 
    ),
    'meta_key' => 'wpcf-start-time', // custom post field by which results are sorted
    'orderby' => 'meta_value',
    'order' => 'ASC'
    ) );  

    $query = new wp_query( $args );

        <h2 class="archive-title"><?php printf( __( 'Schedule for %s', 'template' ), single_tag_title( '', false ) ); ?></h2>
        <?php echo tag_description(); ?>


        <?php if ( $query -> have_posts() ) : while ( $query -> have_posts() ) : $query -> the_post(); ?>


    //usual loop stuff goes here....



    <?php endif; ?>



</section><!--index-post-list-->
<?php get_footer(); ?>
1
rayne

Vous avez une erreur de syntaxe dans votre requête. Selon la documentation de WP_Query , tax_query est un tableau de tableaux de paramètres , c'est-à-dire qu'il devrait probablement ressembler à ceci:

'tax_query' => array(
    array(                     
        'taxonomy' => 'semester',
        'field' => 'slug',
        'terms' => $getterm,
        'include_children' => true,          
        'operator' => 'IN' 
    ),
),
1
Simon