Eh bien, je pense que la question pourrait être un peu déroutant. Mais bon, je veux obtenir les 4 derniers messages, en ignorant les cinq premiers. En bref, les sixième, septième, huitième et neuvième postes les plus récents.
Simple.
WordPress fournit une fonction appelée get_posts()
qui vous permet d’obtenir des publications dans n’importe quel ordre. Fondamentalement, get_posts()
récupérera les 5 publications les plus récentes par défaut.
Pour obtenir 4 publications, en ignorant les 5 plus récentes, définissez les paramètres numberposts
et offset
- offset
indique à la fonction le nombre de publications à ignorer.
$args = array(
'numberposts' => 4,
'offset' => 5,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish'
);
$posts = get_posts( $args );
Vous avez maintenant un tableau des 4 derniers articles (en ignorant les 5 plus récents), classés par date.
Vous pouvez utiliser le paramètre offset - soit sur pre_get_posts
hook ( , voir cet article ) pour la 'boucle principale':
add_action('pre_get_posts','wpse50761_alter_query');
function wpse50761_alter_query($query){
if( $query->is_main_query() ){
//Do something to main query
$query->set('offset',5);
}
}
Ou pour les boucles secondaires suivantes:
//Using get_posts
$my_offset_posts = get_posts(array('offset'=>5));
//Using WP_Query object
$my_offset_query = new WP_Query( array('offset'=> 5) );
(Bien sûr, d'autres arguments peuvent être inclus dans le tableau d'arguments)