_WP_Query
_を使用して製品を一覧表示しようとしています。次のようなクエリを使用しました。
_$slider_products_q = new WP_Query([
'posts_per_page' => 8,
'post__in' => $slides_product_ids,
'post_type' => 'product',
'orderby' => 'date',
'order' => 'DESC'
]);
_
完全に機能しますが、_get_html_price
_などのループ内でWooCommerceメソッドにアクセスする場合は、少し注意が必要です。
私はなんとかこの方法を使用してそれを処理しましたが、パフォーマンスは良くなく、クエリのロードには約0.7秒かかります。
これは私が各アイテムをループする方法です:
_if ($slider_products_q->have_posts()):
while($slider_products_q->have_posts()):
$slider_products_q->the_post();
$product_id = get_the_ID();
global $product;
...
_
次に、$product->get_price_html();
メソッドを呼び出すことができます。
また、Woocommerceメソッドを使用して製品のクエリを実行しようとしましたが、それらは多くのカスタム属性をロードするため、クエリにはさらに時間がかかります。
これを改善する方法について何か提案はありますか?
ちなみに、私は_get_price_html
_などのWoocommerceメソッドの使用のみに関心があります。
属性やカスタム用語はまったく必要ありません。
_global $product;
_はカスタム_WP_Query
_では機能せず、代わりにwc_get_product()
を使用します。
_if ($slider_products_q->have_posts()):
while($slider_products_q->have_posts()):
$slider_products_q->the_post();
$product_id = get_the_ID();
$product = wc_get_product($product_id);
$price_html = $product->get_price_html()
// ...
_
これで、_WC_Product
_変数で任意の_$product
_メソッドを使用できます。
または、 _WC_Product_query
_ を使用することもできます。