web-dev-qa-db-fra.com

Pourquoi ma requête de taxonomie ne s'affiche-t-elle pas?

J'essaie d'afficher des messages à partir d'une catégorie 'Non classé' sous une taxonomie personnalisée appelée 'Reviews' mais sans grande chance.

J'utilise get_template_part('loop','review') pour appeler loop-review.php qui contient ma boucle de taxonomie, mais pour une raison quelconque, rien ne s'affichera. Ce qui donne?

Voici le contenu de loop-review.php...

<div class="row no-margin detail">
    <p class="title"><span>reviews</span></p>
    <?php 

    $args = array(
        'post_type' => 'post',
        'tax_query' => array(
            array(
                'taxonomy'  => 'review',
                'field'     => 'slug',
                'terms'     => 'uncategorized'
            )
        )
    ); $review_query = new WP_Query($args); ?>
    <?php if ($review_query->have_posts()): ?>
            <?php while ($review_query->have_posts()): $review_query->the_post(); ?>
                    <p class="quote">
                            <?php the_content(); ?>
                            <span><?php the_title(); ?></span>
                    </p>
            <?php endwhile; ?>
            <!-- end of the loop -->
                    <?php wp_reset_postdata(); ?>
    <?php else:  ?>
                    <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
    <?php endif; ?>
</div>

J'appelle get_template_part('loop','review') dans mon category.php...

<?php 

get_header(); 

if (is_category('portfolio')): 
    get_template_part('single','portfolio'); 
    get_template_part('loop','review');
else: 
    get_template_part("single","blog");
endif; 

get_footer(); 

?>

Enfin, voici le code de mon functions.php...

add_action('init', 'build_taxonomies', 0);
function build_taxonomies(){
        register_taxonomy('review', 'post', array(
            'hierarchical'    => 'true',
            'label'           => 'Reviews',
            'query_var'       => 'true',
            'rewrite'         => 'true'
        )
    );
}
1
Wilhelm

Il n'y a pas de méthodes the_content() ou the_title() de votre objet de requête.

Celles-ci:

$review_query->the_content();
$review_query->the_title();

devrait juste être

the_content();
the_title();

Si vous aviez activé le débogage , une erreur vous en informerait.

2
Milo

À première vue, je constate que votre requête appelle 'post_type' => 'page' alors que la taxonomie est enregistrée sur le type d'objet post. Le fait de changer le type de publication en post ('post_type' => 'post') devrait résoudre le problème.

0
Justin Kopepasah