it-swarm.com.de

Anzahl der Beiträge für eine WordPress-Archivseite

Ich möchte in der Lage sein, die Anzahl der Posts, die auf jeder Archivseite angezeigt werden, pro Kategorie zu ändern. Kann ich etwas am Loop-Code oder an einem Plugin ändern, das mir diese Fähigkeit verleiht?

Vielen Dank SE Community.

5
Bobby

fügen Sie dies in Ihre theme function.php Datei ein

add_filter('pre_get_posts', 'Per_category_basis');

function Per_category_basis($query){
    if ($query->is_category) {
        // category named 'books' show 12 posts
        if (is_category('books'){
            $query->set('posts_per_page', 12);
        }
        // category With ID = 32 show only 5 posts
        if (is_category('32'){
            $query->set('posts_per_page', 5);
        }
    }
    return $query;

}

erklärung: zuerst prüfen wir, ob es sich tatsächlich um eine kategorie handelt, weil wir sonst nichts ändern wollen. Wenn dies der Fall ist, prüfen wir, ob die Anzahl der anzuzeigenden Beiträge angezeigt wird, und ändern sie. Im ersten Fall prüfen wir anhand des Kategorienamens "books" und weisen den Wert 12 posts_per_page zu. Im zweiten Fall wird der Wert anhand der Kategorie-ID "32" zugewiesen von 5 posts_per_page, um Ihnen zu zeigen, dass Sie beide verwenden können. und Sie können genauso viele Prüfungen und Zuweisungen hinzufügen.

10
Bainternet

Die Lösung von Bainternet funktionierte in meinem Fall nicht, obwohl es mir dabei half, herauszufinden, wie ich es richtig mache.

Die Lösung besteht darin, den Parameter als Referenz zu nehmen, da sonst nur eine Kopie des Abfrageobjekts erstellt wird.

add_action('pre_get_posts', 'custom_per_page');

function custom_per_page(&$query) {
if (is_post_type_archive('custom_post_type_name')) {
    $query->set('posts_per_page', 4);
}
return;
}
1
Dragos