web-dev-qa-db-fra.com

Comment obtenir 4 messages après les 5 plus récents

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.

2
Rigel Glen

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.

1
EAMann

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)

1
Stephen Harris