Lorsque vous cliquez sur le lien next_posts_link, il affiche uniquement les mêmes messages que sur la page 1. Il semble fonctionner correctement sur les pages de catégorie et affecte uniquement la page d'accueil (home.php).
Merci!
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
<?php query_posts('cat=-683,-3598' . $paged); ?>
Code complet
<?php get_header(); ?>
<div id="featured">
<div id="featured_left">
<div id="block1">
<?php query_posts('cat=3598&showposts=1'); ?>
<?php while(have_posts()) : the_post(); ?>
<?php the_post_thumbnail('fbox12'); ?>
<?php endwhile; ?>
</div>
<div id="block2">
<?php query_posts('cat=3598&showposts=1&offset=1'); ?>
<?php while(have_posts()) : the_post(); ?>
<?php the_post_thumbnail('fbox12'); ?>
<?php endwhile; ?>
</div>
</div>
<div id="featured_middle">
<div id="block3">
<?php query_posts('cat=3598&showposts=1&offset=2'); ?>
<?php while(have_posts()) : the_post(); ?>
<?php the_post_thumbnail('fbox3'); ?>
<?php endwhile; ?>
</div>
<div id="block6">
<?php query_posts('cat=3598&showposts=1&offset=3'); ?>
<?php while(have_posts()) : the_post(); ?>
<?php the_post_thumbnail('fbox67'); ?>
<?php endwhile; ?>
</div>
<div id="block7">
<?php query_posts('cat=3598&showposts=1&offset=4'); ?>
<?php while(have_posts()) : the_post(); ?>
<?php the_post_thumbnail('fbox67'); ?>
<?php endwhile; ?>
</div>
</div>
<div id="featured_right">
<div id="block4">
<?php query_posts('cat=3598&showposts=1&offset=5'); ?>
<?php while(have_posts()) : the_post(); ?>
<?php the_post_thumbnail('fbox45'); ?>
<?php endwhile; ?>
</div>
</div>
</div>
<div id="left">
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
<?php query_posts('cat=-683,-3598&paged=' . $paged); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="post_item">
<?php
if ( has_post_thumbnail() ) {
?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_post_thumbnail('homepage-thumb'); ?></a>
<?php }
else { ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><img src="<?php bloginfo('stylesheet_directory'); ?>/images/no_thumb.png"/></a>
<?php }
?>
<h2><?php the_category(', '); ?> | <?php the_time('F j, Y'); ?></h2>
<h1><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h1>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_excerpt(); ?></a>
</div>
<?php endwhile; ?>
<?php endif; ?>
<div class="pagenav">
<div class="pagenavright"><?php next_posts_link('Next Entries','') ?></div>
</div> <!-- end navigation -->
</div>
<?php get_sidebar(); ?>
</div>
<?php get_footer(); ?>
N'utilisez jamais query_posts
, jamais .
Les 6 premières requêtes peuvent être condensées en un seul WP_Query
:
$args = array(
'cat' => 3598,
'posts_per_page' => 6
);
$featured = new WP_Query( $args );
if( $featured->have_posts() ){
$featured->the_post();
?>
your markup for the first post
<?php
$featured->the_post();
?>
your markup for the second post
<?php
$featured->the_post();
// etc..
wp_reset_postdata();
}
Pour la requête principale, utilisez l'action pre_get_posts
avec une fonction dans le functions.php
de votre thème. Cela évite de gaspiller une requête lorsque vous l'écrasez dans le modèle.
function wpa_exclude_categories( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'category__not_in', array( 683, 3598 ) );
}
}
add_action( 'pre_get_posts', 'wpa_exclude_categories' );
Vous avez maintenant coupé 6 requêtes de chaque chargement de page, et votre pagination fonctionnera comme par magie, fera une petite danse.
<?php query_posts('cat=-683,-3598' . $paged); ?>
Cette ligne devrait être
<?php query_posts('cat=-683,-3598&paged=' . $paged); ?>