pre_get_posts Konflikt mit Archiv-Posts

Derzeit benutze bbPress als Forum. Aber jetzt habe ich einige Konflikte und Archiv-Post-Seite wird anstelle von Forum angezeigt? Wie soll ich vorgehen? Irgendwelche Ideen?

BEARBEITEN:

Tatsächlich hat das verursachende Problem gefunden. Es ist diese function, die irgendwie mit meinen Foren zu unterbrechen scheint. Die function dient zum Anzeigen des benutzerdefinierten Post-Typs in der Archivseite des Autors. Habe immer noch keine Lösung für dieses Problem.

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

Solutions Collecting From Web of "pre_get_posts Konflikt mit Archiv-Posts"

Wenn Ihre function pre_get_posts steht, haben Sie diesen Konflikt, da Sie pre_get_posts sehr achtlos verwenden.

pre_get_posts ändert das pre_get_posts bevor die Hauptabfrage AND WP_Query ausgeführt wird. Änderungen an Ihrer function wirken sich daher sowohl auf die Hauptabfrage als auch auf jede benutzerdefinierte Abfrage aus, die WP_Query . Deshalb ist auch in Ihren Forumseiten alles drunter und drüber, da Sie diese Änderungen ebenfalls in Ihr Forum einfügen

Zweitens: Wenn Sie mit einer beliebigen Art von is_archive() ( is_archive() , is_category() usw.), wirken sich alle mit pre_get_posts vorgenommenen pre_get_posts auch auf das pre_get_posts aus

Ihre Lösung wäre also, pre_get_posts nur für die Hauptabfrage ( is_main_query() ) und auch nur für das Frontend ( !is_admin() ) !is_admin()

So etwas wird tun

 if( !is_admin() && $query->is_main_query() && $query->is_archive() ); 

BEARBEITEN

Ich werde meinen Code oben nicht ändern. Nur realisiert, dass Ihr Code für die Autorenseite ist. Dann sollten Sie is_author() , nicht is_archive()