WP_Query: esclude i prodotti nascosti dall'elenco dei prodotti WooCommerce
-
-
Noterei che questo codicefiniràperfallire catastroficamente a causa dell'impostazione di `posts_per_page` su` -1`.Pochi servergestiscono questo codice quando ci sono 1000messaggi,pernonparlare di 20.000.Moltiplicaloperilnumero di visitatori che arrivano sultuo sitoI would note that this code will eventually fail catastrophically due to the `posts_per_page` being set to `-1`. Few servers would handle this code when there are 1000 posts, nevermind 20,000. Multiply that by however many visitors arrive on your site
- 0
- 2016-12-03
- Tom J Nowell
-
2 risposta
- voti
-
- 2016-06-30
Importante: quanto seguefunziona soloper le versioni di WooCommerceinferiori alla 3.0.Per una rispostapiù aggiornata,vedere l'altra risposta di kalle .
WooCommerce salva questi dati come
metadata
quindi dovraieseguire un Meta query rispetto alnome_visibility
.Qualcosa come:'meta_query' => array( array( 'key' => '_visibility', 'value' => 'hidden', 'compare' => '!=', ) )
Questoestrarràtuttii post che non hannometa
_visibility
uguale ahidden
.Important: The following only works for WooCommerce versions less than 3.0. For a more up-to-date answer please see the other answer by kalle.
WooCommerce save this data as
metadata
so you'll need to run a Meta Query against the name_visibility
. Something like:'meta_query' => array( array( 'key' => '_visibility', 'value' => 'hidden', 'compare' => '!=', ) )
This will pull all posts that do not have meta
_visibility
equal tohidden
.-
Perfetto.Ecco di cosa avevobisogno.Per chiunque cerchi questa risposta,ecco la query completa sopra. " -1,'post_type'=> 'product','orderby'=> 'menu-order','order'=> 'asc','meta_query'=> array ( Vettore( 'key'=> '_visibility', 'value'=> 'nascosto', 'compare'=> '!=', ) )); $ wc_query=nuovo WP_Query ($params); ?> `Perfect. That's what I needed. For anyone who searches for this answer, here is the full query to the above. ` -1, 'post_type' => 'product', 'orderby' => 'menu-order', 'order' => 'asc', 'meta_query' => array( array( 'key' => '_visibility', 'value' => 'hidden', 'compare' => '!=', ) )); $wc_query = new WP_Query($params); ?>`
- 0
- 2016-06-30
- Peter Ingersoll
-
@PeterIngersoll FYI,puoi contrassegnare questa risposta come accettatapermostrare aifuturi visitatori cosa hafunzionato ancheperte :) C'è un segno di spunta a sinistra della risposta di Howdy.Maggioriinformazioni qui: http://wordpress.stackexchange.com/help/someone-answers@PeterIngersoll FYI, you can mark this answer as accepted to show future visitors what worked for you as well :) There's a check mark on the left of Howdy's answer. Read more here: http://wordpress.stackexchange.com/help/someone-answers
- 0
- 2016-07-05
- Tim Malone
-
- 2017-04-06
Apartire da Woocommerce 3. La visibilità è modificatain tassonomia anzichéin meta .Quindi ènecessariomodificaremeta_queryin tax_query. Permostrare soloi prodotti visibili,
'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'exclude-from-catalog', 'operator' => 'NOT IN', ), ),
edesempi diprodottiin vetrina
'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured', ), ),
Terminipossibili: "escludi-dalla-ricerca","escludi-dal-catalogo","inprimopiano","esaurito".
As of Woocommerce 3. Visibility is changed to taxonomy instead of meta. So you need to change the meta_query to tax_query. To show only visible products,
'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'exclude-from-catalog', 'operator' => 'NOT IN', ), ),
and examples for Featured Products
'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured', ), ),
Possible terms: 'exclude-from-search', 'exclude-from-catalog', 'featured', 'outofstock'.
Spero che questonon siatroppo specificoper WooCommerce.
Ho unelegante shortcode chemostra unelenco dituttii mieiprodotti con SKU. Tuttavia,include ancheprodotti che hopubblicatoma hoimpostato la visibilità del catalogo su "nascosto".
Non riesco atrovare un argomento/parametroperescluderei prodottinascosti (oincludere solo quelli contrassegnati come Catalogo/Ricerca).
So che deveessere semplice; Semplicementenon l'hotrovato. Grazieper qualsiasi aiuto.
Eccoil codice: