it-swarm.com.de

Beiträge pro Seite in benutzerdefinierten Taxonomie-Vorlagen

Ich möchte mit diesem Filter 20 Posts in meiner benutzerdefinierten Steuervorlage anzeigen:

function customize_customtaxonomy_archive_display ( $query ) {
    if ( ( $query->is_main_query()) && ( is_tax() ) ){
        $query->set( 'posts_per_page', '20' );
        $query->set( 'number_posts', '20' );
        $query->set( 'orderby', 'Rand' );
        return;

    }
}

//Hook the function

add_action( 'pre_get_posts', 'customize_customtaxonomy_archive_display' );

Wenn ich es auf 2 setze, werden zwei Posts angezeigt. Wenn ich es auf 20 setze, werden 12 Posts angezeigt. Es werden nie mehr als 12 Beiträge angezeigt, obwohl 34 veröffentlicht wurden.

Woran könnte das liegen?

1
user998163

number_posts ist kein gültiger Parameter in pre_get_posts, Sie sollten posts_per_page verwenden

Sie sollten auch eine Prüfung (!is_admin()) in Ihre Abfrage aufnehmen, um zu prüfen, ob Sie sich am Front-End oder am Back-End befinden, da pre_get_posts auch die Back-End-Abfragen ändert

Schreiben Sie Ihren Code wie folgt um:

add_action( 'pre_get_posts', function ( $query ) 
{
    if (    !is_admin() 
         && $query->is_main_query() 
         && $query->is_tax() 
    ) {
        $query->set( 'posts_per_page', '20'   );
        $query->set( 'orderby',        'Rand' );
    }
});
2
Pieter Goosen