Intereting Posts
Перемотка сообщений затем показывает только первое сообщение сброс постоянных ссылок после изменения имен страниц Многоязычные пользовательские переписывающие URL-адреса Хостинг плагин Google Code с автоматическим обновлением? Использование wp_enqueue_script в скриптах, содержащих PHP $ wpdb-> не работает с префиксом таблицы обновлений Есть ли способ определить, является ли медиа-iframe видимым? Добавление пользовательских объектов / объектов в WordPress Как редактировать содержимое 404 через wp-редактор? Добавить мета-бокс, не отображающийся в новой записи – пользовательский мета-ящик не отображается использование пользовательских таксономий с пользовательскими типами сообщений: отображение списка сообщений по категории как комбинировать условия AND, OR и NOT, где Отключить визуальный редактор на одной конкретной странице обновление метаданных пользователей с помощью многомерного ассоциативного массива Почтовый слайдер с настраиваемым типом сообщения

Цикл WordPress, вызывающий ошибки тайм-аута (превышено максимальное время выполнения 30 секунд)

Внезапно я начал получать ошибки памяти и времени, когда я пытаюсь создать цикл с WP_Query. Вот код:

$args = array( 'post_type' => 'post', 'posts_per_page' => '3', 'fields' => 'ids' ); $query = new WP_Query($args); while($query->have_posts()) { } 

Цикл через 3 строки, очевидно, не будет перегружать сервер, поэтому возникает некоторая ошибка. Как я уже сказал, это только начинало происходить внезапно, оно работало хорошо раньше. Когда он впервые сломался, это были ошибки памяти, которые я получал, но теперь эта ошибка:

Неустранимая ошибка: максимальное время выполнения 30 секунд превышено в C: \ Projects \ fieldaware.dev \ wp-includes \ query.php в строке 3760

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

Есть ли способ диагностировать, что происходит здесь? Также я должен упомянуть, что использование get_posts не вызывает никаких ошибок времени, поэтому это:

 $query = get_posts($args); foreach($query as $post) { } 

работает отлично, его просто WP_Query вызывает проблемы.

ОБНОВИТЬ:

Я пытался запустить точный код, который работал раньше, и он работает снова, я не понимаю, вот он:

  $args = array( 'post_type' => 'fa_asset', 'posts_per_page' => 50, 'paged' => 1 ); $query = new WP_Query($args); $data = array('data' => array()); // ID, Model, Manufacturer, Serial Number, Last Service, Service Frequency, Next Service, Type if ($query->have_posts()) { while($query->have_posts()) { $query->the_post(); echo '<p>TEST</p>'; $id = $query->post->ID; $type = $query->post->post_title; $manufacturer = get_post_meta($id,'manufacturer',true); $serial_number = get_post_meta($id,'serial_number',true); $data['data'][] = array( 'id', 'model', $manufacturer, $serial_number, 'last service', 'service frequency', 'next service', $type ); } } wp_reset_postdata(); echo "<pre>" . json_encode($data,JSON_PRETTY_PRINT). "</pre>"; 

Я полностью потерялся с этим (это не тип сообщения BTW, я попытался изменить это). Я не вижу, как что-то отличается от более подробного кода.

Да, проблема в том, что Мило сказал, что у меня не было the_post внутри цикла, поэтому цикл работал бесконечно.