it-swarm.com.de

Anzahl der Beiträge pro Seite ändern

In den wordpress Einstellungen => Lesen => Blogseiten zeigen höchstens [Eingabefeld] Beiträge

Ich habe es im Moment auf 3 Stellen gesetzt.

In meinem Index, in Datumsarchiven, Tag-Archiven, Kategoriearchiven, Suchergebnissen usw. werden jetzt 3 Beiträge pro Seite angezeigt.

Mein Ziel ist es, für verschiedene Seiten eine unterschiedliche Anzahl von Ergebnissen zu erzielen. In meinem Index befinden sich möglicherweise 3 Beiträge. In Suchergebnissen oder Archiven wird jedoch eine andere Anzahl von Ergebnissen pro Seite angezeigt.

Irgendwelche Ideen, wie das geht?

12
JasonDavis

Das wird es tun: (füge die functions.php deines Themas hinzu)

add_action( 'pre_get_posts',  'set_posts_per_page'  );
function set_posts_per_page( $query ) {

  global $wp_the_query;

  if ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_search() ) ) {
    $query->set( 'posts_per_page', 3 );
  }
  elseif ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_archive() ) ) {
    $query->set( 'posts_per_page', 5 );
  }
  // Etc..

  return $query;
}
20
Dave Romsey

Verbesserung der obigen Antwort: hook pre_get_posts wird als Referenz abgerufen, daher ist kein Aufruf von global und kein Aufruf von return erforderlich.

add_action( 'pre_get_posts',  'set_posts_per_page'  );
function set_posts_per_page( $query ) {

  if ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_search() ) ) {
    $query->set( 'posts_per_page', 3 );
  }
  elseif ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_archive() ) ) {
    $query->set( 'posts_per_page', 5 );
  }
  // Etc..

}
0
Arts Fantasy