WordPress проблема с большими данными

Всем доброго времени суток!

Версия wp – 3.1.3(старая была)
Версия wp – 3.3.1(новая сейчас)
Выделенный сервер, php 5.2.17, mysql 5.1.58

Сайт – поиск и покупка авиабилетов онлайн.

Хотел для пользователей сделать каталог городов в виде:
Каталог по городам
— Из Вены
— — Вена — Наньчан
— — Вена — Нарьян-Мар
— — Вена — Нассау
— — Вена — Натал
— — Вена — Нашвилл
— — Вена — Неаполь
…..
— Из Барселоны
— — Барселона — Аархуз
— — Барселона — Абакан
— — Барселона — Абердин
— — Барселона — Абу-Даби

и т.д.
В общем должно было выйти 9000 страниц. Написал скрипт, страницы добавились.

Проблема в следующем: из-за такого большого количества страниц стало не хватать памяти на выполнение скриптов wp. И постоянно выскакивала ошибка "Allowed memory size of 8388608 bytes exhausted…" Увеличил размер ОП до 200 Мб и только тогда перестала выводиться эта ошибка и началась другая. Ругалось на лимит времени выполнения скрипта в 30 секунд. Так же не мог в админке зайти на страницы "постов" и "страниц". Аж сердце в пятки ушло. Обновил вордпресс до 3.3.1. Админка оживилась. Но вот ошибка со временем выполнения скрипта снова вываливается если я начинаю писать следующее

$pada = get_pages("sort_column=post_title&unclude=1915,1934,1949,1948,1958,1992,2006,2012,2017,2019");
foreach($pada as $page)
{
 //вывод 10 страниц
}

и страница загружается 60 секунд. Я никак не могу понять, почему так происходит, я же указал конкретных 10 страниц, почему все так медленно работает ?

Буду очень признателен за любую помощь, т.к. я отчаялся найти какую либо информацию по этому вопросу.

Выделенный сервер,

Реальный или симулятор?

я же указал конкретных 10 страниц, почему все так медленно работает ?

Надо понимать, что get_pages Вы написали в шаблоне? Если да, то этот запрос никоим образом не отменяет все предыдущие, а только добавляет еще один. Так что, само собой, время выполнения не уменьшилось. Даже больше того, оно увеличилось.

Реальный или симулятор?

Реальный

Надо понимать, что get_pages Вы написали в шаблоне? Если да, то этот запрос никоим образом не отменяет все предыдущие, а только добавляет еще один. Так что, само собой, время выполнения не уменьшилось. Даже больше того, оно увеличилось.

В шаблоне. С этим я согласен.

Извиняюсь, я имел в виду, что если посмотреть memory_get_usage() до и после get_pages то до будет 24 Мб, а после 115Мб. На что он тратит столько оперативки ? Склоняюсь к мнению, что wp сначала берет все 9000 страниц, а потом выбирает из них нужные, как-то это обойти можно ?

unclude – так и написано в скрипте?

unclude - так и написано в скрипте?

Господи… Спасибо Вам огромное Ю.Б., видимо надо временно переключиться на что-то другое, а то уже такие нелепости не замечаю…

🙂
Переключиться – одна из причин, по которым я "тусуюсь" по форумам и фейсбукам.

Anonymous
Отправить
Ответ на: