WooCommerce のカスタム分類の処理は、wc_get_products 関数で行われます。
P粉404539732
P粉404539732 2023-07-19 16:17:09
0
1
484

標準アクションを使用して分類を登録します:

リーリー

後で、いくつかのパラメータに基づいて製品を取得したいと思います。ブランド階層 (brand_heirarchy) も結果に含めたいと考えています。

リーリー

返されたデータには、カテゴリ ID が表示されます。例:

リーリー

しかし、製品に関連付けられたブランドレベルの ID も返すようにしたいのです。

私が目にするコンテンツのほとんどは、カスタム分類法で製品をフィルタリングする方法に関するものですが、私が知りたいのは、どの分類法が製品に関連付けられているかを知りたいだけです。

Woocommerce ではこれが許可されていないことがわかりました: https://github.com/woocommerce/woocommerce/issues/13138

フィルター woocommerce_product_object_query_args を使用してみましたが、わかりませんでしたそれをどう使うか。製品検索フィルターもありますが、適用されないようです。

現時点では、各製品をループして wp_get_object_terms($data['id'], 'brand_heirarchy') のようなものを使用するのが最善の方法だと思いますが、これは効率的ではないようです。

私は長い間 WordPress を使用していないので、各製品に関連付けられた分類法を取得するより効率的な方法があるかどうかを知りたいと思っています。 ######ありがとう。

ああ、wp_get_object_terms と wp_get_post_terms は空の配列を返すようですが、実際には製品にはブランド層が割り当てられています。

P粉404539732
P粉404539732

全員に返信(1)
P粉770375450

wc_get_products() を使用すると、カスタム分類を完全に処理できます。これは、利用可能なフィルター フック woocommerce_product_data_store_cpt_get_products_query を使用して WC_Product_Data_Store_CPT クラスで処理されるため、正しい場所で検索していません。

したがって、カスタム製品分類 brand_heirarchy には、次のコードを使用します:

リーリー

これで、wc_get_products() 関数でカスタム分類を使用できるようになります。例:

リーリー

もう大丈夫なはずです

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!