製品(シンプルまたは可変)と製品バリエーション(可変製品に残っている)が混在している可能性があります... WP_Query
に製品(シンプルおよび可変)を表示する必要があります。
'post_type' => 'product'
とすると、同時に簡単で多様な製品が得られます。
不足している引数は、-1
に設定するposts_per_page
です。
だからあなたのコードは次のようになります。
$args = array('post_type' => 'product', 'posts_per_page' => -1);
$loop = new WP_Query($args);
while ($loop->have_posts()) :
$loop->the_post();
// set all product IDs in an array
$all_product_ids[] = $loop->post->ID;
endwhile;
// Testing: Output the number of products in that query
echo '<p>Products count: ' . count($all_product_ids) . '</p>';
次に、あなたはすべてのあなたのプロダクトを取得します。
あなたはWPDBクエリを使用しようとすることができかもしれませ:あなたの答えのための
## --- THE SQL QUERY --- ##
global $wpdb;
$table_name = $wpdb->prefix . "posts";
$product_ids_array = $wpdb->get_col("
SELECT `ID`
FROM `$table_name`
WHERE `post_status` LIKE 'publish'
AND `post_type` LIKE 'product'
");
## --- TESTING OUTPUT --- ##
// Testing raw output of product IDs
print_r($product_ids_arr);
// Number of products
$products_count = count($product_ids_arr);
echo '<p>Products count: '. $products_count. '</p>';
## --- THE LOOP --- ##
foreach ($product_ids_array as $product_id):
// Get an instance of WP_Product object
$product = new WC_Product($product_id);
// Use the WP_Product methods to get and output the necessary data
endforeach;
ロイックのおかげで、私はチェックして、あなたに戻って取得します! – kn13
あなたが私に提案したように修正を試みましたが、出力は同じです。 バックエンドには3000種類の変数製品がありますが、単純なものは81種類あります。だから、私は何が間違っているのか理解しようとしている。 – kn13
ありがとうございます。@loictheaztecを追加しました! – kn13