In den Leseeinstellungen können Sie die Anzahl der angezeigten Beiträge festlegen, die sich auf die Anzahl der in allen Kontexten angezeigten Beiträge auswirkt. Ich möchte stattdessen eine bestimmte Anzahl von Beiträgen auf der Startseite und eine andere Anzahl von Beiträgen auf Seiten wie Archiv, Suchergebnissen usw. anzeigen.
Ich erkenne, dass ich dies tun könnte, indem ich die Themendateien bearbeite und die Abfrageparameter dort ändere, aber ich würde einen einfacheren Zugriff auf eine einfache Einstellungsseite vorziehen. Vor langer Zeit bin ich auf ein Plugin gestoßen, das dies getan hat, aber ich kann es jetzt nicht finden.
Kennt jemand ein Plugin, um dies zu tun, oder sogar eine Funktion, die ich in die Datei functions.php einfügen könnte, um dasselbe zu erreichen?
Ich glaube, die beste Möglichkeit, dies in einem Plugin zu tun, besteht darin, die folgende Beispielfunktion auszuführen, wenn der Aktions-Hook pre_get_posts
auftritt. Das Objekt $wp_query
ist verfügbar, dh Ihre bedingten Tags sind verfügbar, aber bevor WordPress die Posts erhält, bedeutet dies, dass Sie die Abfragevariablen ändern, bevor die erste Abfrage ausgeführt wird, anstatt eine zweite Abfrage hinzuzufügen, wie wenn query_posts () in a verwendet wird Themendatei.
function custom_posts_per_page($query) {
if (is_home()) {
$query->set('posts_per_page', 8);
}
if (is_search()) {
$query->set('posts_per_page', -1);
}
if (is_archive()) {
$query->set('posts_per_page', 25);
} //endif
} //function
//this adds the function above to the 'pre_get_posts' action
add_action('pre_get_posts', 'custom_posts_per_page');
sie können eine benutzerdefinierte Schleife mit query_posts ausführen und die Anzahl der Posts nach is_home, is_archive usw. angeben.
nur eine einfache if-Anweisung zusammen mit query_posts