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
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?
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.