Je liste mes deux publications les plus récentes d'un widget sur la barre latérale. Lorsque je consulte l'un de ces messages à partir de single.php, je souhaite que ce message soit exclu de la liste et affiche plutôt le message suivant dans l'ordre.
single.php ressemble à ceci:
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
[Content]
<?php endwhile; else : ?>
[If no post is found]
<?php endif; ?>
et voici le code dans le widget PHP:
<?php $the_query = new WP_Query( 'showposts=2' ); ?>
<?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
[Recent posts]
<?php endwhile;?>
Modifier - la solution:
<?php global $post; $args = array('showposts' => 2, 'post__not_in' => array( $post->ID )); query_posts( $args ); if (have_posts()) : while (have_posts()) : the_post(); ?>
[Recent posts]
<?php endwhile; wp_reset_query(); endif; ?>
L'argument post__not_in devrait fonctionner pour vous:
$args = array(
'numberposts' => 5,
'offset' => 0,
'category' => 7,
'post__not_in' => array( $post->ID )
);
$myposts2 = get_posts($args);