Zeige alle klebrigen Beiträge mit Paginierung

Es wird versucht, einen benutzerdefinierten Admin-Link für einen benutzerdefinierten Posttyp zu erstellen. Ich habe es geschafft, einen Link hinzuzufügen, um alle “klebrigen” Beiträge neben den üblichen “Alle”, “Veröffentlicht”, “Papierkorb” usw. anzuzeigen, aber die eigentliche Abfrage funktioniert nicht so, wie ich es möchte.

In pre_get_posts versuche ich, die Abfrage zu ändern, um Folgendes zu tun: – Zeige nur klebrige Beiträge – respektiere posts_per_page und Paginierungseinstellungen

Wenn ich das versuche:

$query->set('post__in', get_option('sticky_posts')); $query->set('posts_per_page', 5); 

… Ich sehe alle klebrigen Beiträge, aber keine Seitennummerierung. Bedeutet “posts__in” gesetzt, dass posts_per_page ignoriert wird?

Danke für die Information. Verworfen “posts_per_page”, aber es machte keinen Unterschied. Meine Debug-Leiste zeigt:

 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 

Solutions Collecting From Web of "Zeige alle klebrigen Beiträge mit Paginierung"

Basierend auf diesem Beitrag , habe ich diesen Test gemacht und es funktioniert:

 $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 ''; } if ( $pd != 1 ) { next_posts_link( __( '« Página anterior ', 'twentyten' ) ); } previous_posts_link( __( 'Próxima página »', 'twentyten' ) ); 

Ich habe es mit dem Leseparameter auf 2 und 4 getestet und es scheint in Ordnung zu sein. Sehen Sie, ob es Ihren Bedürfnissen entspricht.