Probleme mit Einstellungsbedingungen als Array in pre_get_posts

Ich versuche, Beiträge basierend auf einem benutzerdefinierten Feld zu filtern, das ich für einen Benutzer eingerichtet habe. allowed_categories ist ein benutzerdefiniertes Multiselect-Feld auf der Seite zum Hinzufügen / Bearbeiten von Benutzern, über das der Administrator auswählen kann, auf welche Begriffe in einer Taxonomie der Benutzer zugreifen allowed_categories . In diesem Fall ist die Taxonomie product_cat . Ich habe einen Benutzer hinzugefügt und einige Begriffe ausgewählt, die gut funktionieren. Ich schrieb eine function, die die Produktkategorien, denen der Benutzer zugeordnet ist, erhalten sollte, und filtert Ergebnisse basierend auf diesen Werten zurück. Problem ist, dass es nicht funktioniert? Wahrscheinlich etwas Einfaches hier übersehen ..

Was wird zurückgegeben, wenn ich die allowed_categories des aktuellen Benutzers allowed_categories

 Array ( [0] => 100 ) 

Meine pre_get_posts Aktion

 add_action( 'pre_get_posts', 'custom_pre_get_posts_query' ); function custom_pre_get_posts_query( $q ) { if ( ! $q->is_main_query() ) return; if ( ! $q->is_post_type_archive() ) return; if ( ! is_admin() && is_shop() ) { $user = wp_get_current_user(); $allowedCats = get_field('allowed_categories', 'user_' . $user->ID); if( isset($cats) && $cats > 0) { $q->set( 'tax_query', array(array( 'taxonomy' => 'product_cat', 'field' => 'id', 'terms' => $allowedCats, 'operator' => 'NOT IN' ))); } } remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' ); } 

Solutions Collecting From Web of "Probleme mit Einstellungsbedingungen als Array in pre_get_posts"