Intereting Posts
4 сообщения на страницу из одной категории Загрузить jQuery только на главной странице Правильное сохранение старой структуры перезаписи Создание боковой панели в зависимости от высоты сообщения Как добавить несколько элементов флажка в мультимедийные вложения? Реорганизация пространств имен Как использовать wp_enqueue_script, когда требуется Требуемая версия PHP: 5.3.3 – Версии найденные: 5.2.17 … Как и где выполнить обновление до 5.33 Почтовый ящик для регистрации Как указать пользователей, которые создали собственные типы сообщений, и скрыть те, у кого их нет? Ошибка перевода эспрессо события Аутентификация пользовательского поля при входе в систему Нужна помощь в создании фильтра для редактирования вывода «image_send_to_editor» Каков правильный способ создания пользовательской главной страницы? XMLRPC Избегайте дублирования контента

При перечислении дочерних страниц заканчивается память

В настоящее время у меня проблема с памятью, когда мой сайт пытается создать дерево дочерних страниц. к моему пониманию, запрос слишком велик (WP имеет 60000 страниц)

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

?php global $post; wp_list_pages( array( 'child_of' => $post->ID, // Only pages that are children of the current page 'depth' => 1 , // Only show one level of hierarchy 'sort_order' => 'asc', 'title_li' =>$post->post_title )); ?> 

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

Заранее спасибо.

Solutions Collecting From Web of "При перечислении дочерних страниц заканчивается память"

WP_Query имеет Pagination_Parameters , такие как posts_per_page и offset чтобы помочь вам. Просто распечатайте результаты, чтобы ограничить запрос более разумным числом на страницу.

Я не вижу ошибок в коде, может быть, вы должны проверить, можете ли вы получить правильный идентификатор сообщения через $post->ID , иногда какой-то код до того, как ваш изменил объект post post, потому что вы не можете его получить и wp_list_pages() отобразит все страницы.

Чтобы сократить время выполнения, я закончил использование WP_Query, как это было предложено jgraup

код для генерации списка детей ниже

 <?php global $post; echo '<p>'. get_the_title().'</p>'; // current post title $query = new WP_Query( array( 'post_type' => 'page', 'post_parent' => $post->ID,'order' => 'ASC') ); // find all pages with parentId of current page id if ( $query->have_posts() ) { echo '<ul>'; while ( $query->have_posts() ) {//loop through results $query->the_post(); echo '<li><a href='. get_page_link($post->ID) .'>' . get_the_title() . '</a></li>';//li with link to the page } echo '</ul>'; /* Restore original Post Data */ wp_reset_postdata(); } else { // no posts found } ?>