web-dev-qa-db-ja.com

WP_Queryを使用して投稿タイプのすべてのIDを取得する

WP_Queryを使用してカスタム投稿タイプのIDのリストを取得しようとしていますが、望ましくない結果が返されています。これはメモリリークとブラウザのスタックです。

これが私が使うコードです:

    $the_query = new WP_Query("post_type=post&posts_per_page=-1&field=ids");    
    if ($the_query->have_posts()) {
      while ($the_query->have_posts()){
         echo get_the_ID();
      }
    }

私のブラウザは無限にページを読み込もうとします。誰かが上記のコードの何が悪いのか知っているかもしれません。

3
KeepMove

ループ内にthe_post()関数呼び出しがありません。追加するだけ

$the_query->the_post();

あなたのループの中に。それとは別に、あなたのループはうまくいくはずです

編集

また、クエリが完了した後にあなたのポストデータをリセットすることを忘れないでください

3
Pieter Goosen

私はあなたが "WP_Queryを使って"解決策を望んでいることを知っていますが、なぜこれにget_posts()を使わないのですか?

$posts_ids = get_posts('post_type=post&posts_per_page=-1&fields=ids');
// $posts_ids is now an array of IDs
echo implode(',', $posts_ids); // prints: 123, 124, 125, 126, ...

// or

foreach( $posts_ids as $id ) {
    echo $id;
}
4
Marek