WP_Query : WooCommerce 제품 목록에서 숨겨진 제품 제외
-
-
이 코드는`posts_per_page`가`-1`로 설정되어 결국 비극적으로 실패 할 것입니다.게시물이 1000 개일 때이 코드를 처리하는 서버는 거의 없지만 20,000 개는 신경 쓰지 않습니다.얼마나 많은 방문자가 귀하의 사이트에 도착하는지 곱하십시오.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 대답
- 투표
-
- 2016-06-30
중요 : 다음은 3.0 미만의 WooCommerce 버전에서만 작동합니다.최신 답변은 kalle의 답변 을 참조하세요.
WooCommerce는이 데이터를
metadata
로 저장하므로 메타 쿼리 .다음과 같은 것 :'meta_query' => array( array( 'key' => '_visibility', 'value' => 'hidden', 'compare' => '!=', ) )
이렇게하면
_visibility
과 같은 메타_visibility
가 없는 모든 게시물을 가져옵니다.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
.-
완전한.그게 내가 필요했던 것입니다.이 답변을 검색하는 모든 사람을 위해 위의 전체 쿼리가 있습니다. ` -1,'post_type'=> 'product','orderby'=> 'menu-order','order'=> 'asc','meta_query'=> array ( 정렬( 'key'=> '_visibility', '값'=> '숨김', '비교'=> '!=', ) )); $ wc_query=새로운 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 참고로,이 답변을 수락 된 것으로 표시하여 향후 방문자에게 무엇이 효과가 있었는지 보여줄 수 있습니다. :) Howdy의 답변 왼쪽에 확인 표시가 있습니다.자세한 내용은 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
Woocommerce 3. 가시성은 메타가 아닌 분류로 변경되었습니다 .따라서meta_query를tax_query로 변경해야합니다. 눈에 보이는 제품 만 표시하려면
'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'exclude-from-catalog', 'operator' => 'NOT IN', ), ),
추천 제품의 예
'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured', ), ),
가능한 용어 : '검색에서 제외','카탈로그에서 제외','추천','재고 없음'
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'.
WooCommerce에만 국한되지 않기를 바랍니다.
SKU가있는 모든 제품 목록을 표시하는 멋진 단축 코드가 있습니다. 그러나 여기에는 내가 게시했지만 카탈로그 가시성을 "숨김"으로 설정 한 제품도 포함됩니다.
숨겨진 제품을 제외 할 인수/매개 변수를 찾을 수 없습니다 (또는 카탈로그/검색으로 표시된 제품 만 포함).
간단해야한다는 것을 알고 있습니다. 나는 그것을 찾지 못했습니다. 도움을 주셔서 감사합니다.
코드는 다음과 같습니다.