WP_Query: excluir productos ocultos de la lista de productos de WooCommerce
-
-
Megustaría señalar queeste códigoeventualmentefallará catastróficamente debido a que `posts_per_page` seestableceen` -1`.Pocos servidoresmanejaríaneste código cuando hay 1000publicaciones,noimporta 20,000.Multipliqueesopor la cantidad de visitantes que lleguen a su sitio.I 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 respuestas
- votos
-
- 2016-06-30
Importante: lo siguiente solofuncionapara las versiones de WooCommerceinferiores a 3.0.Para obtener una respuestamás actualizada,consulte la otra respuesta de kalle .
WooCommerceguardaestos datos como
metadata
por lo quenecesitaráejecutar un Meta consulta conelnombre_visibility
.Algo como:'meta_query' => array( array( 'key' => '_visibility', 'value' => 'hidden', 'compare' => '!=', ) )
Estoextraerátodas laspublicaciones que no tenganmeta
_visibility
igual 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
.-
Perfecto.Esoes lo quenecesitaba.Para cualquiera quebusqueesta respuesta,aquíestá la consulta completa de lo anterior. ` -1,'post_type'=> 'producto','orderby'=> 'menu-order','order'=> 'asc','meta_query'=> array ( formación( 'key'=> '_visibilidad', 'valor'=> 'oculto', 'comparar'=> '!=', ) )); $ wc_query=new 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 Para suinformación,puedemarcaresta respuesta como aceptadaparamostrar a losfuturos visitantes lo quetambiénfuncionópara usted :) Hay unamarca de verificación a laizquierda de la respuesta de Howdy.Leamás aquí: 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
Apartir de Woocommerce 3. La visibilidades cambiado ataxonomíaen lugar demeta .Entoncesnecesitas cambiarmeta_query atax_query. Paramostrar soloproductos visibles,
'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'exclude-from-catalog', 'operator' => 'NOT IN', ), ),
yejemplos deproductos destacados
'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured', ), ),
Términosposibles: "excluir de labúsqueda","excluir del catálogo","destacado","agotado".
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'.
Espero queestono sea demasiadoespecíficopara WooCommerce.
Tengo un código abreviadoingenioso quemuestra una lista detodosmisproductos con SKU. Sinembargo,tambiénincluyeproductos quepubliquépero que configuré la visibilidad del catálogo como "oculta".
Nopuedoencontrar un argumento/parámetroparaexcluirproductos ocultos (o soloincluir aquellosmarcados como Catálogo/Búsqueda).
Sé que debe ser simple; Simplementeno lo heencontrado. Graciaspor cualquier ayuda.
Aquíestáel código: