web-dev-qa-db-fra.com

Affiche les articles de # 6 à # 20 sur la page d'archive

Mon client affiche ses 5 derniers messages (extraits) sur la page d’accueil, suivis d’un lien "En savoir plus". Sur la page d'archives, il ne souhaite pas afficher à nouveau les 5 publications les plus récentes, mais les publications de # 6 à # 20.

Comment puis-je faire ceci?

1
JDRay

Ajoutez un décalage dans la requête et donnez la valeur 5, les 5 premiers seront ignorés.

Voici l'extrait de code pour le même

$custom_args = array('post_type' => 'your custom post type name',
'posts_per_page' => '20',
'orderby' => 'id',
'offset'=>5,
'order' => 'ASC',);
$custom_query = get_posts($custom_args);
 foreach ($custom_query as $value) {
 //your data
  }
2
Adarsh

Vous pouvez filtrer la requête d'archive d'origine:

function my_archive_query( $query ) {
  if ( $query->is_archive() && $query->is_main_query() ) {
    $query->set( 'offset', 5 );
    $query->set( 'posts_per_page', 20 );
  }
}

add_action( 'pre_get_posts', 'my_archive_query' );

Plus d'informations:

filtre pre_get_posts

balise conditionnelle is_archive

1
Michael