it-swarm.dev

Zeigen Sie je nach Kontext eine unterschiedliche Anzahl von Beiträgen pro Seite an (z. B. Startseite, Suche, Archiv).

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.

reading-settings-blog-pages-show-at-most-per-page

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?

21
Doug

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');
23
kevtrout

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

0
chrismccoy