WP_Query: Excluir produtos ocultos da lista de produtos WooCommerce
-
-
Eunotaria queeste código acabaráporfalhar catastroficamente devido ao `posts_per_page` sendo definido como` -1`.Poucos servidores lidariam comeste código quando há 1000posts,nevermind 20.000.Multipliqueisso,noentanto,muitos visitantes chegam ao seu siteI 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 respostas
- votos
-
- 2016-06-30
IMPORTANTE: O seguintefunciona apenaspara versões WooCommercemenor que 3.0.Para uma respostamais atualizada,porfavor veja o outro respostapor Kalle .
woocommerce Salveesses dados como
metadata
para que vocêpreciseexecutar um Meta consulta contra onome_visibility
.Algo como:'meta_query' => array( array( 'key' => '_visibility', 'value' => 'hidden', 'compare' => '!=', ) )
Isso vaipuxartodas aspostagens que não têmmeta
_visibility
igual aohidden
.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
.-
Perfeito.Isso é o queeuprecisava.Para quemprocuraesta resposta,aquiestá a consulta completa ao acima. ` -1,'post_type'=> 'produto','orderby'=> 'ordem demenu','ordem'=> 'ASC','Meta_Query'=> Array ' variedade( 'Key'=> '_visibilidade', 'valor'=> 'oculto', 'comparar'=> '!=', ) )); $ wc_query=novo 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
-
@Peteringersollfyi,vocêpodemarcaresta resposta como aceitoparamostrarfuturos visitantes o quefuncionoupara vocêtambém :) Há umamarca de seleção àesquerda da resposta de Howdy.Leiamais aqui: http://wordpress.stackexchange.com/help/omeone-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. Visibilidade é alteradaparataxonomiaem vez demeta .Então vocêprecisa alterar o Meta_Querypara Tax_Query. Paramostrar apenasprodutos visíveis,
'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'exclude-from-catalog', 'operator' => 'NOT IN', ), ),
e exemplosparaprodutosem destaque
'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured', ), ),
Termospossíveis: 'Exclude-from-Search','Exclude-from-catálogo','Destaque','OutOfstock'.
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 queissonão sejamuitoespecíficopara WooCommerce.
Eutenho um shortcodebacana queexibe uma lista detodos osmeusprodutos com SKUs. Noentanto,tambémincluiprodutos quepublicei,mas definimos a visibilidade do catálogo "oculto".
Não consigoencontrar um argumento/parâmetroparaexcluirprodutos ocultos (ouincluir apenas osmarcados como catálogo/pesquisa).
Eu sei que deve ser simples; Eu sónãoencontreiisso. Obrigadopor qualquer ajuda.
Aquiestá o código: