J'essaie d'afficher différents modèles dans la page archive.php. Je dois charger différents articles en fonction du type de publication personnalisé. Voici mon code:
<?php if(is_singular('libri')) :?>
<?php
// WP_Query arguments
$args = array (
'post_type' => 'libri',
);
// The Query
$query = new WP_Query( $args );
// The Loop
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
the_title();
}
} else {
// no posts found
}
// Restore original Post Data
wp_reset_postdata(); ?>
<?php else : ?>
<?php endif; ?>
<?php get_footer();?>
Quoi qu'il en soit, la page n'affiche rien. Comment puis-je me débarrasser de ce problème?
Merci!
is_singular
renverra false sur une page d'archive. Si vous voulez vérifier si vous êtes sur une archive pour un type d'article, vous pouvez utiliser is_post_type_archive( 'libri' )
ou vous pouvez créer un fichier archive-{post_type}.php
qui, dans ce cas, serait archive-libri.php
.
Références: https://codex.wordpress.org/Post_Type_Templateshttps://codex.wordpress.org/ Conditional_Tags # A_Single_Post_Page
Vous utilisez is_singular()
qui ne retournera jamais true
sur la page d'archive, comme @ Tom J Nowell souligné dans le commentaire. Donc, ce que vous devez faire pour que query
s'exécute est de supprimer cette condition.