Wie kann man die Einstellung „Blogseiten zeigen höchstens __ Beiträge“ in der Schleife umgehen?
-
16-10-2019 - |
Frage
Ich verwende dieses Skript in meiner archive.php, um eine Linkliste aller in der aktuellen Kategorie enthaltenen Beiträge aufzulisten.Dadurch wird jedoch die Ergebnisanzahl relativ zu der Zahl begrenzt, die „Einstellungen > Lesen > Höchstens angezeigte Blogseiten“ zugewiesen ist _ Beiträge".
Mit anderen Worten: Möglicherweise gibt es 10 Beiträge in dieser Kategorie, es wird jedoch nur die in dieser Einstellung zugewiesene Anzahl angezeigt.
Wie kann ich mein Skript so ändern, dass diese Einstellung ignoriert wird?
<?php if(is_category()) while (have_posts()) : the_post(); ?>
<li id="post-<?php the_ID(); ?>">
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
<?php the_title(); ?>
</a>
<?php echo get_link_excerpt(); ?>
</li>
<?php endwhile; } ?>
Lösung
Anstatt die Standardschleife zu verwenden, versuchen Sie es vielleicht Gebäude dein eigenes Abfrage.
Im Grunde wird es ungefähr so aussehen:
$your_posts = get_posts('cat=123&posts_per_page=123');
foreach ($your_post as $post) {
do_something-with($post);
}
Sie können alle Beiträge anzeigen, indem Sie entweder den Parameter verwenden 'posts_per_page'=>-1
oder nopaging=true
.
(Ich bin mir nicht sicher, warum jemand dafür gestimmt hat?Meiner Meinung nach sollte die Person kommentieren, wie die Frage verbessert werden sollte, wenn sie oder er das tun möchte.)
Andere Tipps
Um die zu ändern posts_per_page
Kontextbezogene Einstellung besteht am besten darin, die Abfrage per Rückruf zu filtern pre_get_posts
. Zum Beispiel einstellen posts_per_page
zu 10 Für eine bestimmte Kategorie (z. B. Kategorie -ID 7):
function wpse8982_filter_pre_get_posts( $query ) {
if ( $query->is_main_query() && is_category( 7 ) ) {
$query->set( 'posts_per_page', '10' );
}
}
add_action( 'pre_get_posts', 'wpse8982_filter_pre_get_posts' );
Beachten Sie, dass Sie passieren können jede gültige Einstellung für posts_per_page
.
Wenn Sie etwas anderes als die automatischen Standardeinstellungen ermöglichen möchten, müssen Sie die Kontrolle über Ihre Schleife übernehmen. Lesen Sie die Dokumente auf Die Schleife und beachten Sie besondere Kenntnisse des Abschnitts mit der Bezeichnung mehrerer Schleifen. Es zeigt alternative Möglichkeiten, die Abfrage einzurichten und Dinge anzuzeigen. Sie sollten sich auch ansehen Wp_query Da ist das der Schlüssel zu dem, was hier vor sich geht.