Ich versuche, eine benutzerdefinierte Beitragstypkategorie für angemeldete Benutzer mit Pre_Get_Posts zu verbergen

Ich habe einen benutzerdefinierten Post-Typ in meinem Thema namens Portfolio. Diese Kategorien heißen Projektkategorien. Ich versuche, eine Projektkategorie für eingeloggte Benutzer auszuschließen. Ich kann das überhaupt nicht zur Arbeit bringen. Ich habe den pre_get_posts Codex gelesen, aber ich stecke gerade fest. Ich bin mir nicht sicher, ob ich die Kategorien für meinen benutzerdefinierten Post-Typ definiere oder ob es sich um eine normale Post-Kategorie handelt. Wenn ich auf die Kategorie klicke, um sie zu bearbeiten, befindet sie sich in der Browser-URL-Leiste

wp-admin/edit-tags.php?action=edit&taxonomy=project-type&tag_ID=94&post_type=po‌​rtfolio

Hier ist der Code, den ich gerade versuche.

 function exclude_category( $query ) { if ( is_user_logged_in() && $query->is_main_query() ) { $taxquery = array( 'taxonomy' => 'project-type', 'field' => 'id', 'terms' => array( 94 ), 'operator' => 'NOT IN' ); $query->set( 'tax_query', $taxquery); } } add_action( 'pre_get_posts', 'exclude_category' ); 

Irgendwelche Ideen, was ich falsch machen könnte, würden sehr geschätzt werden. Vielen Dank

Solutions Collecting From Web of "Ich versuche, eine benutzerdefinierte Beitragstypkategorie für angemeldete Benutzer mit Pre_Get_Posts zu verbergen"

OK, also haben Sie da ein paar Fehler.

  1. field kann term_id oder slug , aber nicht id .
  2. tax_query sollte Array von Arrays und kein Array sein.

Also hier ist fester Code:

 function exclude_category( $query ) { if ( is_user_logged_in() && $query->is_main_query() ) { $taxquery = array( array( 'taxonomy' => 'project-type', 'field' => 'term_id', 'terms' => array( 94 ), 'operator' => 'NOT IN' ), ); $query->set( 'tax_query', $taxquery); } } add_action( 'pre_get_posts', 'exclude_category' ); 

Es ist nicht getestet, aber ich bin mir ziemlich sicher, dass es gut funktionieren sollte.