Wie schränkt man die Ergebnisse auf einen bestimmten post_type auf der Tag-Archivseite ein?

Ich habe drei benutzerdefinierte Post-Typen für eine einzelne Taxonomie registriert (die standardmäßige post_tag Taxonomie).

Wenn ich auf example.com/tag/foo zugreife, habe ich die Posts bekommen, die ein foo Tag haben, und die Posts wurden von allen drei benutzerdefinierten Post-Typen genommen.

Ich möchte die Posts auf einen bestimmten Post-Typ beschränken.

Sagen example.com/tag/foo/post_type/BAR , wenn ich auf example.com/tag/foo/?post_type=BAR oder example.com/tag/foo/post_type/BAR zugreife, dann sollte ich alle Posts bekommen, die ein foo Tag haben und der post_type der Posts ist BAR .

Ich habe versucht, die query_var der Haupt-Abfrage zu post_type => BAR in pre_get_post‌s aber das wird nicht funktionieren .. Da ich die Beiträge paginieren muss, so kann ich nicht einfach einfach die WP_Query um abzufragen und alle WP_Query . Also bitte hilf!

Solutions Collecting From Web of "Wie schränkt man die Ergebnisse auf einen bestimmten post_type auf der Tag-Archivseite ein?"

Das funktioniert für mich:

 function namespace_add_custom_types( $query ) { if( is_tag() && empty( $query->query_vars['suppress_filters'] ) ) { $query->set( 'post_type', array( 'YOUR_CUSTOM_POST_TYPE', 'nav_menu_item')); return $query; } } add_filter( 'pre_get_posts', 'namespace_add_custom_types' ); 

Sie können dafür WP_Query . Standardmäßig wird paginiert, es sei denn, Sie sagen es nicht, indem Sie ihm den Parameter 'nopaging' und ihn auf 'nopaging' setzen.

 $query = new WP_Query( array( // Your CPT parameters 'nopaging' => true, ) ); 

In Ihrem Fall würden Sie die Abfrage einfach neu schreiben, um WordPress mitzuteilen, wie viele Beiträge Sie wünschen usw.

 $query = new WP_Query( array( 'post_type' => 'review', 'posts_per_page' => 15, ) ); 

Diese Abfrage würde also alle Post-Typen mit dem Slug of review erfassen und 15 Posts pro Seite anzeigen.