Essayer de faire fonctionner un lien d’administrateur personnalisé pour un type de publication personnalisé. J'ai réussi à ajouter un lien pour afficher tous les messages "collants" à côté des "Tous", "Publiés", "Corbeilles", etc., mais la requête ne fonctionne pas comme prévu.
Dans pre_get_posts, j'essaie de modifier la requête pour effectuer les opérations suivantes: - Afficher uniquement les posts collants - Respecter les paramètres posts_per_page et de pagination
Si j'essaye ceci:
$query->set('post__in', get_option('sticky_posts'));
$query->set('posts_per_page', 5);
... Je vois tous les messages collants, mais pas de pagination. Avoir "posts__in" défini signifie-t-il que posts_per_page n'est pas pris en compte?
Merci pour l'info. Ditched "posts_per_page" mais cela n'a pas changé. Ma barre de débogage indique:
SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (2382,2358,2334,2331,2301,2298,2280,2262,2220,2226,2193,2157,2163,2136,2130,2109,2100,2084,2072,2026,2020,1961,1934,1846,1834,1756,1738,1709,1688,1552,1543,1498,1488,1482,1476,1438,1432,1412,1406,1400,1394,1391,1388,1358,1340,1319,1285,1282,1269,1227,1212,2621,2674,2659,3300,3313,3414,3560,3314) AND wp_posts.post_type = 'ad_listing' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC
Basé sur ce post , j’ai fait ce test et je l’ai fonctionné:
$sticky = get_option( 'sticky_posts' );
$ppp = get_option('posts_per_page');
if (!is_paged()) {
$custom_offset = 0;
} else {
$custom_offset = $ppp*($paged-1);
}
$args = array(
'numberposts' => $ppp,
'offset' => $custom_offset,
'post__in' => $sticky
);
$posts_data = get_posts( $args );
$pd = count( $posts_data );
if ( count( $posts_data ) > 0 ) {
echo '<ul>';
foreach ( $posts_data as $post ) {
echo '<li><a href="'.get_permalink( $post->ID ).'">'.$post->post_title.'</a></li>';
}
echo '</ul>';
}
if ( $pd != 1 ) { next_posts_link( __( '<span class="meta-nav">«</span> Página anterior ', 'twentyten' ) ); }
previous_posts_link( __( 'Próxima página <span class="meta-nav">»</span>', 'twentyten' ) );
Je l'ai testé avec les paramètres de lecture réglés sur 2 et 4 et tout semble aller pour le mieux. Voyez si cela répond à vos besoins.