it-swarm.com.de

Warum stört "Blog-Seiten zeigen höchstens" meine benutzerdefinierte wp_query?

Ich bin sehr neu in WordPress, vor allem, wenn es darum geht, eine benutzerdefinierte Schleife wie folgt zu erstellen. Das funktioniert gut, aber ich bin ratlos, warum "Blog-Seiten zeigen höchstens" (unter Einstellungen> Lesen) die Abfrage stört.

Im folgenden Beispiel ist post_per_page auf 10 gesetzt. Wenn ich die Standardeinstellung "Blog-Seiten werden höchstens angezeigt" auf 10 Beiträge belasse, funktioniert dies einwandfrei, da beide Seiten übereinstimmen und korrekt berechnet werden. Wenn ich jedoch "posts_per_page" auf 5 ändere, werden der Paginierung einige zusätzliche Seiten hinzugefügt, auf denen beim Klicken "Seite nicht gefunden" angezeigt wird.

Ist es möglich, diese Einstellung vom Administrator zu überschreiben? Ich dachte, das Erstellen einer benutzerdefinierten wp_query würde dies sowieso überschreiben. Was mache ich falsch?

Ich verwende auch wp_pagenavi für die Paginierung, wie Sie im folgenden Beispiel sehen können, und habe einen benutzerdefinierten Beitragstyp "Auflistung". Ich benutze WordPress 3.1.3.

<?php $custom_query = new WP_Query( array( 'post_type' => 'listing', 'posts_per_page' => 10, 'paged' => get_query_var('paged') ) ); ?>  

<?php if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post(); ?>  

    <div id="post-<?php the_ID(); ?>">   
        // stuff here
    </div>

<?php endwhile; endif; ?>

//wp_pagenavi 
<?php 
    if (function_exists('wp_pagenavi')) {
    wp_pagenavi( array( 'query' => $custom_query ) ); } 
?>

<?php wp_reset_postdata(); ?>
2
Andrew
2
Michael
<?php
global $query_string;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$custom_query = new WP_Query( array( 'post_type' => 'listing', 'posts_per_page' => 10, 'paged' => $paged ) );
?>

füge den Code hinzu $paged =...

1
Brady

"Blogseiten zeigen höchstens" ist mehr oder weniger genau das, wie es scheint. Dies ist die Anzahl der Posts, die pro Seite für paginierte Archivlisten angezeigt werden. posts_per_page überschreibt diese Einstellung für bestimmte Abfragen.

Sie sehen mehr als den Wert für posts_per_page, da die Anzahl der Posts, die durch das Mischen und Anheften von Sticky-Posts am Anfang der Ergebnismenge entstehen, auf der ersten Seite posts_per_page + Anzahl der Posts mit "Sticky-Posts-Zählung" angegeben ist. Das ist seltsam, gebe ich zu, aber es ergibt sich aus der ebenso seltsamen Entscheidung, Haftnotizen als serialisiertes Array in $wpdb->options statt als Einträge in $wpdb->postmeta zu speichern.

Übergeben Sie 'ignore_sticky_posts' => true als Argument an Ihren WP_Query, um das Jonglieren der Haftnotizen zu verhindern.

0
s_ha_dum