WP_Query: Verborgene Produkte aus der WooCommerce-Produktliste ausschließen

Ich hoffe, dass dies nicht zu spezifisch für WooCommerce ist.

Ich habe einen raffinierten Shortcode, der eine Liste aller meiner Produkte mit SKUs anzeigt. Es enthält jedoch auch Produkte, die ich veröffentlicht habe, aber die Katalogsichtbarkeit auf “versteckt” gesetzt habe.

Ich kann keine Argumente / Parameter finden, um versteckte Produkte auszuschließen (oder nur diejenigen, die als Katalog / Suche markiert sind).

Ich weiß, dass es einfach sein muss; Ich habe es einfach nicht gefunden. Danke für jede Hilfe.

Hier ist der Code:

 -1, 'post_type' => 'product', 'orderby' => 'menu-order', 'order' => 'asc'); $wc_query = new WP_Query($params); ?>  have_posts()) : ?> have_posts()) : $wc_query->the_post(); ?> 
SKUProduct Name
get_sku(); ?> <a href="https://wordpress.stackexchange.com/questions/231118/wp-query-exclude-hidden-products-from-woocommerce-product-list/" title="">

Solutions Collecting From Web of "WP_Query: Verborgene Produkte aus der WooCommerce-Produktliste ausschließen"

WooCommerce speichert diese Daten als metadata so dass Sie eine Meta-Abfrage gegen den Namen _visibility . Etwas wie:

 'meta_query' => array( array( 'key' => '_visibility', 'value' => 'hidden', 'compare' => '!=', ) ) 

Dadurch werden alle Posts, die keine Meta- _visibility gleich hidden .

Ab Woocommerce 3. Sichtbarkeit wird zu Taxonomie anstelle von Meta geändert . Also müssen Sie die meta_query in tax_query ändern. Um nur sichtbare Produkte anzuzeigen,

 'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'exclude-from-catalog', 'operator' => 'NOT IN', ) ) 

und Beispiele für ausgewählte Produkte

 'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured', ), ), 

Mögliche Begriffe: ‘Ausschließen von der Suche’, ‘Ausschließen aus dem Katalog’, ‘Vorgestellt’, ‘Auslagerung’.