webentwicklung-frage-antwort-db.com.de

Ist es möglich, das posts_per_page-Limit für einen bestimmten Beitragstyp zu entfernen?

Ich möchte wissen, ob ich das Limit für posts_per_page für einen bestimmten Beitragstyp aufheben kann.

Auf der Seite archive.php zeige ich verschiedene Beitragstypen an und für den spezifischen Beitragstyp "Veröffentlichungen" möchte ich alle Beiträge anzeigen. Wie kann ich dies erreichen, ohne den traditionellen Post-Typ zu beeinträchtigen?

3
VeeJay

Sie können sich in die Aktion pre_get_posts einhängen, um auf das Objekt $query zuzugreifen.

Sie sollten Ihren Aktions-Hook in Ihrer functions.php verwenden. Ein Beispiel, wie Ihre Funktion aussehen könnte:

add_action( 'pre_get_posts', 'publications_archive_query' );
function publications_archive_query( $query ) {
  if ( !is_admin() && $query->is_main_query()) {
    if ( $query->get('post_type') === 'publications' ) {
      $query->set( 'posts_per_page', 5 );
    }
}

Grenzen Sie die Abfrage ein, die Sie ändern, indem Sie bedingte Prüfungen verwenden.

$query->get('post_type'), um den aktuellen Abfragepost_typ abzurufen, gegen den geprüft werden soll.

is_main_query, um sicherzustellen, dass Sie Ihre Abfragemodifikation nur auf die Hauptabfrage anwenden.

Lesen Sie weiter und finden Sie weitere Beispiele: https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

4
FFrewin