Zeigen Sie eine unterschiedliche Anzahl von Beiträgen aus einer Kategorie auf den verschiedenen Seiten an

wordpress.stackexchange https://wordpress.stackexchange.com/questions/7262

Frage

in Übereinstimmung mit Paginierung mit benutzerdefinierter Schleife. Ich benutze die benutzerdefinierte Schleife für das Display Flash -Spiel. Für eine Pagination auf der Seite mit Posts aus einer Kategorie (MyDomain/Kategorie/Kategorie) habe ich verwendet:

add_action( 'pre_get_posts', 'wpse5477_pre_get_posts' );
function wpse5477_pre_get_posts( &$wp_query )
{
    if ( $wp_query->is_category() ) {
        $wp_query->set( 'post_type', 'game' );
        $wp_query->set( 'posts_per_page', 9 );
    }
}

Ich habe den Abschnitt auf der Hauptseite meiner Website, wo drei Spiele aus jeder Kategorie angezeigt wurden. Laut dem obigen Code kann ich jedoch nicht nur 3 Spiele anzeigen, auch wenn ich in Array ('post_per_page', 3) oder SMTH so bestmeke, da diese Nummer bereits in $ wp-query bestimmt wurde. Wie könnte ich zwei Vögel mit einer Stein töten? Vielen Dank.

War es hilfreich?

Lösung

Sie können nach der Existenz einer Variablen suchen, damit Sie sie nicht überschreiben:

add_action( 'pre_get_posts', 'wpse7262_pre_get_posts' );
function wpse7262_pre_get_posts( &$wp_query )
{
    if ( $wp_query->is_category() ) {
        if ( ! array_key_exists( 'post_type', $wp_query->query_vars ) ) {
            $wp_query->set( 'post_type', 'game' );
        }
        if ( ! array_key_exists( 'posts_per_page', $wp_query->query_vars ) ) {
            $wp_query->set( 'posts_per_page', 9 );
        }
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top