Получить Все Идентификаторы Типа Записи С Помощью Запроса WP


Я пытаюсь получить список идентификаторов пользовательского типа сообщений с помощью WP_Query, но он возвращает нежелательный результат, который является утечкой памяти и зависшим браузером.

Вот код, который я использую:

    $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();
      }
    }

Это заставляет мой браузер бесконечно пытаться загрузить страницу. Может быть, кто-нибудь знает, что не так с приведенным выше кодом..

Author: Ari, 2015-09-08

2 answers

Вам не хватает вызова функции the_post() в цикле. Просто добавьте

$the_query->the_post();

В вашем цикле. Кроме того, ваш цикл должен работать

РЕДАКТИРОВАТЬ

Вы также не должны забывать сбрасывать свои postdata после выполнения запроса

 3
Author: Pieter Goosen, 2015-09-08 04:57:24

Я знаю, что вам нужно решение "с использованием 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
Author: Marek, 2015-09-08 05:52:17