it-swarm.com.de

Paginierung für benutzerdefinierte Taxonomie

Ich habe ein Problem damit, dass meine benutzerdefinierte Taxonomieseite korrekt paginiert wird. Ich habe andere in diesem Forum gepostete Beispiele durchgesehen, aber ich konnte meine zweite Seite nicht dazu bringen, keine 404-Fehlerseite zurückzugeben. Hier sind meine Daten

  • Zollgebühr: Study_Tags
  • Beispielbegriffe: Gemeinschaft, Wirtschaft, Verbrechen ...
  • Benutzerdefinierte Taxonomie Seite: taxonomy-study_tags.php
  • Beiträge pro Seite: 5(in den Leseeinstellungen festgelegt, global für alle Seiten/Beiträge vor Ort)

Ich verwende einen benutzerdefinierten Beitragstyp "Study" mit der benutzerdefinierten Taxonomie "Study Tags", weshalb ich der Meinung bin, dass ich die Funktion "query_posts ()" verwenden muss.

Ich möchte nur übergeordnete Seiten in den Ergebnissen anzeigen, da jede CPT-Studie untergeordnete Seiten mit Studiendetails, Präsentationen usw. enthalten kann.

Meine Informationen zum Einrichten der Abfrage

<?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array_merge( $wp_query->query_vars, 
    array(
            'post_type'=> 'study',
            'post_parent' => '0',
            'paged' => $paged,
            'order' => 'ASC',
            ));
            query_posts($args);

?>

$ wp_query-> query_vars übergibt beispielsweise "[study_tags] => community", wenn var_dump () verwendet wird. Ich weiß also, dass es den richtigen Begriff an die benutzerdefinierte Steuerseite überträgt.

Irgendwelche Ideen, wie man eine zweite Seite mit Ergebnissen bekommt?

1
unwrittendevin

Zuallererst: nie query_posts verwenden: Wenn Sie die Hauptabfrage ändern müssen, ist es viel besser, den pre_get_posts-Haken zu verwenden: Ihre Site-Benutzer werden es Ihnen danken, sobald die Leistung steigt.

Wenn die benutzerdefinierte Taxonomie study_tags nur für study CPT verwendet wird, besteht der einzige Grund zum Ändern der Standardabfrage darin, post parent auf 0 festzulegen.

add_action('pre_get_posts','set_study_parent');

function set_study_parent( $query ) {
  if ( ! is_admin() && is_main_query() && is_tax('study_tags') ) {
    $query->set( 'post_parent', 0 );
  }
}

Dann können Sie in Ihrer taxonomy-study_tags.php-Vorlage einfach die Schleife verwenden. Die Paginierung funktioniert, ohne etwas anderes zu tun.

1
gmazzap