J'utilise ceci pour appeler des posts:
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$per_page = get_option('to_count_archives');
query_posts("posts_per_page=".$per_page."&paged=".$paged."&cat=".$cat);
if (have_posts())
?>
<?php while (have_posts()) : the_post(); ?>
Et cela fonctionne très bien pour les catégories. Mais sur les pages d'archives générées pour les balises, il affiche TOUTES les publications, pas seulement les publications avec une balise spécifique . Je vais créer un fichier séparé archives.php et category.php.
Je dois conserver la partie du code to_count_archives car elle appelle le nombre de publications par page.
J'apprécie toute aide pour réécrire le code ci-dessus pour fonctionner correctement.
C'est parce que lorsque vous appelez query_posts
, vous écrasez la requête d'origine par une nouvelle, vous devez obtenir la requête d'origine et réinitialiser les éléments que vous souhaitez modifier.
global $query_string;
$per_page = get_option( 'to_count_archives' );
query_posts( $query_string . '&posts_per_page=' . $per_page );
Pourquoi ne pas utiliser WP_Query et faire quelque chose comme:
// The Query
$the_query = new WP_Query( array( 'posts_per_page' => 5, 'tag' => 'THETAG' ) );
// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
Vous pouvez également faire la même chose pour la catégorie. J'espère avoir compris la question que votre exemple de code ci-dessus m'a confondu. Je trouve que WP_Query est plus facile à utiliser :)