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バージョンでのみ機能します.最新の回答については、他の
カレによる回答をご覧ください. WooCommerceはこのデータを
metadata
として保存するため、_visibility
という名前に対するメタクエリ.次のようなもの:'meta_query' => array( array( 'key' => '_visibility', 'value' => 'hidden', 'compare' => '!=', ) )
これにより、メタ
_visibility
がhidden
に等しいないすべての投稿がプルされます.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( アレイ( 'キー'=> '_ visibility'、 '値'=> '非表示'、 '比較'=> '!='、 ) )); $ 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参考までに、この回答を承認済みとしてマークして、将来の訪問者に何がうまくいったかを示すことができます:)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
Woocommerce3の時点.可視性は
メタではなく分類法に変更されました.したがって、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', ), ),
考えられる用語: 'exclude-from-search'、 'exclude-from-catalog'、 'featured'、 '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'.
これがWooCommerceに限定されすぎないことを願っています.
SKUを含むすべての製品のリストを表示する気の利いたショートコードがあります.ただし、私が公開したものの、カタログの可視性を「非表示」に設定した製品も含まれています.
非表示の製品を除外する(またはカタログ/検索としてマークされた製品のみを含める)引数/パラメーターが見つかりません.
私はそれが単純でなければならないことを知っています.私はそれを見つけていません.助けてくれてありがとう.
コードは次のとおりです: