Ich ändere mit pre_get_posts
die Anzahl der auf meiner Homepage angezeigten Beiträge.
function lifelounge_query_adjust( $query ) {
if ( is_home() ) {
set_query_var( 'posts_per_page', 12 );
return;
}
}
add_filter( 'pre_get_posts', 'lifelounge_query_adjust' );
Aber ich habe ein Problem mit klebrigen Beiträgen. Grundsätzlich werden in der Abfrage mehr als die von mir angegebenen 12 Posts angezeigt, wenn ich irgendwelche klebrigen Posts habe, da 12 plus alle klebrigen Posts angezeigt werden . Ich könnte natürlich auch klebrige Beiträge ignorieren:
function lifelounge_query_adjust( $query ) {
if ( is_home() ) {
set_query_var( 'posts_per_page', 1 );
set_query_var( 'ignore_sticky_posts', 1 );
return;
}
}
add_filter( 'pre_get_posts', 'lifelounge_query_adjust' );
Aber ich halte das nicht für ideal. Ich denke , dass die klebrigen Beiträge werden sollten enthalten in der Grenze von 12 Stellen, und nicht hinzugefügt bis an die Grenze. Das macht für mich am meisten Sinn. Gibt es einen Weg, das zu erreichen? Habe ich einen Fehler gemacht, der Gesicht und Hand verdient?
Ziemlich genau ein Duplikat von: Sticky Posts & Posts pro Seite, aber das wurde seltsamerweise als zu lokalisiert geschlossen. Ich bin nicht einverstanden, offensichtlich, weil ich nach einer Antwort suche, aber auch, weil es eine Frage ist, warum WordPress das posts_per_page
Limit nicht einzuhalten scheint, wenn Sie klebrige Beiträge verwenden. Wenn Sie 12 Posts pro Seite haben möchten, sollten Sie 12 erhalten, nicht 13, was Sie erhalten würden, wenn Sie einen einzelnen klebrigen Post hätten.
quelle
$sticky_count + (12 - $sticky_count)
zu12- $sticky_count
though. Wenn ich zum Beispiel 1 Sticky habe, dann berechnet Ihre Mathematik immer noch 12 und WP fügt den Sticky Post hinzu, um 13 zu machen. Oh, und wennif ($sticky_count > $posts_per_page)
und wir auf 12 setzen, heißt das nicht, dass wir 24+ zeigen werden?$posts_per_page
geben, in dem gleich ist$sticky_count
, und hier setze ich den Parameter posts_per_page auf 1 und denke, dass dies in Ordnung ist, da dieser Fall vielleicht selten ist und sich nur auf der ersten Seite befindet ($sticky_count + 1
).Es gibt ein Problem, wenn die Haftnotizen auf der ersten Seite sind.
Die Lösung besteht darin, die Anzahl der Haftnotizen für die Haftnotizen, die Teil der ersten Seite sind, zu verringern.
Ich hoffe es wird helfen
quelle
Ich habe beide oben genannten Antworten in einer bereinigt, damit keine unnötigen WP_Query geladen werden. Behebt, ob die erste Seite klebrig ist, und verringert die Zeit, um die Informationen mit saubererem, schnellerem Code zu verarbeiten.
quelle