web-dev-qa-db-ja.com

すべての商品投稿をループしますか?

「商品」と呼ばれる自分の投稿をすべてループしたいです。そのために私はこれを使う:

$products_IDs = new WP_Query( array(
        'post_type' => 'product'
    ));

while ($products_IDs->have_posts() ) : $products_IDs->the_post();
        $y = $y + 1; 
        $myfile = fopen("wp_all_import.txt", "a");
        fwrite($myfile, "Counter: " . $y . "\t");
        fclose($myfile);

        //some code...

        $sql = "INSERT INTO `wp_all_import` (pid, price, price_old, link, shop) VALUES ('$pid', '$price', '$price_old', '$link', '$shop')";
        if($database->query($sql) === TRUE){
            $myfile = fopen("wp_all_import.txt", "a");
            fwrite($myfile, "Inserted: " . $pid . " \n");
            fclose($myfile);
        }

それでも、私は常に10ループだけを取得します。それにもかかわらず、私は10以上の商品ページを持っています... 100以上。..しかし、ループは常に10で停止しています... look https:// gamekeys-shop .de/wp-admin/wp_all_import.txt

理由はわかりませんが、どうすれば修正できますか、またはループが常に10で停止している理由を確認するにはどうすればよいですか。

ご挨拶とありがとう!

1
Jan

詳しくはWordPressコーデックスの WP_Query をご覧ください。

WP_Queryにはさまざまなパラメータがあります。すべての投稿を表示するには、 posts_per_page パラメータを-1に設定する必要があります。

$products_IDs = new WP_Query( array(
        'post_type' => 'product',
        'posts_per_page' => -1,
    ));

while ($products_IDs->have_posts() ) : $products_IDs->the_post();
    // Your code
endwhile;