WordPress WP_Query: ошибка nopaging

yustnip
На сайте с 18.02.2013
Offline
29
852

Есть функция:

function arenda_subway() {

$subway_query = new WP_Query(array('post_type' => 'post', 'nopaging' => true, 'cat' => 147));

if($subway_query->have_posts()) {

while($subway_query->have_posts()) {

$subway_query->the_post();

$query_station = get_post_meta(get_the_ID(), 'subway');

$stations[] = $query_station[0];

}

$subway = array();

$subway = array_unique($stations);

sort($subway);

$subway = array_map('trim', $subway);

return $subway;

}

wp_reset_postdata();

}

Выдает пустой экран даже с включенным режимом показа ошибок, если добавлен параметр 'nopaging' => true, без него все в порядке.

Подскажите, пожалуйста, в чем может быть дело? Может быть сервер видит бесконечный цикл? Записей в WP_Query много.

Polkan
На сайте с 28.09.2005
Offline
108
#1

Попробуйте заменить

'nopaging' => true

на

'posts_per_page'=> -1

WordPress-плагин для Apishops (http://p-api-shop.ru/) P-API-Shop WooCommerce-плагин для Apishops (http://woo-apishops.ru/) Woo-Apishops
yustnip
На сайте с 18.02.2013
Offline
29
#2

Пробовал, то же самое. :(

Polkan
На сайте с 28.09.2005
Offline
108
#3

В error_log смотрели?

Должна быть какая-то ошибка.

В крайнем случае добавляйте вывод в лог маяков и по ним смотрите где остановливается скрипт.


function arenda_subway() {
$subway_query = new WP_Query(array('post_type' => 'post', 'nopaging' => true, 'cat' => 147));
error_log('MY :: wp_query created');
if($subway_query->have_posts()) {
error_log('MY :: have posts');
while($subway_query->have_posts()) {
error_log('MY :: enter loop');
$subway_query->the_post();
$query_station = get_post_meta(get_the_ID(), 'subway');
error_log('MY :: query_station = '.print_r($query_station,1) );
$stations[] = $query_station[0];
}
...
и тд
yustnip
На сайте с 18.02.2013
Offline
29
#4

Нашел такое: Allowed memory size of 134217728 bytes exhausted (tried to allocate 90 bytes) in...

Получается действительно слишком большой скрипт или хостинг слабый?

Polkan
На сайте с 28.09.2005
Offline
108
#5

Да, памяти не хватает. WP_Query выбирает слишком много элементов. Нужно либо хостинг сильнее, либо скрипт переписать так чтоб в несколько проходов обрабатывал, либо выборку изменить (например, может быть нет смысла выбирать все посты из кат.147? и можно сразу выбирать меньшее количество)

yustnip
На сайте с 18.02.2013
Offline
29
#6

Понял, спасибо большое! Буду думать.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий