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?
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
}
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: