Zeigen Sie eine unterschiedliche Anzahl von Beiträgen aus einer Kategorie auf den verschiedenen Seiten an
-
16-10-2019 - |
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.
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