Intereting Posts
Тема не хочет загружать файлы локализации Как уменьшить размер изображения внутри значка? показ пользовательских типов сообщений определенной категории AJAX вызов внутри класса плагина не запускается Сохранить сообщение в другой таблице Сайт не найден с использованием поддоменов Отключить виджет плагина Категория отображения и связанные списки сообщений Предоставляет ли расширение несколько Nav_Menu_Walkers разрешение вложенных меню? Последние записи заголовков, не работающих с Qtranslate Как установить медиа-папку для каждого типа вне медиа-каталога Как изменить цвет фона моего заголовка динамически на основе значения цвета пользовательских сообщений? Как создать страницу входа, которая перенаправляется на страницу, но я назначу серию паролей (или фраз) для входа в систему Сообщение находится в категории потомков, не работающих в home.php Как добавить раскрывающееся меню страны в профиль пользователя?

Как разбивать список дочерних страниц

Я использую следующий код для отображения дочерних страниц текущей просматриваемой страницы. Но он выводит только последние 5 дочерних страниц; Я хочу, чтобы он перечислил все страницы в блоках по 5 с «следующей» и «предыдущей» ссылками. Например, он работает на обычных постах. Код, который я использую, следующий:

<?php $ancestors = array(); $ancestors = get_ancestors($post->ID,'page'); $parent = (!empty($ancestors)) ? array_pop($ancestors) : $post->ID; if (!empty($parent)) { $kids = new WP_Query( array( 'post_parent'=>$parent, 'post_type' => 'page', 'ignore_sticky_posts' => true ) ); if ($kids->have_posts()) { while ($kids->have_posts()) { $kids->the_post(); echo '<li>' . '<div>' . '<a href="' . get_permalink() . '">' . get_the_post_thumbnail() . '</a>' . '<span>' . '<a href="' . get_permalink() . '">' . get_the_title() . '</a>' . '</span><br/>'; echo '<div class="extrainfo">'; echo the_field("info_add"); echo '</div>'; echo '</div></li>'; } } } ?> 

Эта страница является следующей: http://dedos.info/flavioc/trabalhos/

Теперь мне интересно, если бы я использовал Custom Post Types для управления этим, но теперь уже слишком поздно. Любая помощь будет оценена, спасибо.

Solutions Collecting From Web of "Как разбивать список дочерних страниц"

Опция 1:

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

Что вам нужно сделать, используйте предлагаемый параметр WP_Query . Кроме того, вам нужно настроить переменную – здесь $paged – представляющую $paged на страницы. Имея это, вы можете использовать paginate_links() для создания ссылок на страницы.

Код:

 global $post; $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $ancestors = array(); $ancestors = get_ancestors($post->ID,'page'); $parent = (!empty($ancestors)) ? array_pop($ancestors) : $post->ID; if (!empty($parent)) { $kids = new WP_Query( array( 'post_parent'=>$parent, 'post_type' => 'page', 'ignore_sticky_posts' => true, 'paged' => $paged ) ); if ($kids->have_posts()) { while ($kids->have_posts()) { $kids->the_post(); echo '<li>' . '<div>' . '<a href="' . get_permalink() . '">' . get_the_post_thumbnail() . '</a>' . '<span>' . '<a href="' . get_permalink() . '">' . get_the_title() . '</a>' . '</span><br/>'; echo '<div class="extrainfo">'; echo the_field("info_add"); echo '</div>'; echo '</div></li>'; } if ( get_option('permalink_structure') ) { $format = 'page/%#%'; } else { $format = '&paged=%#%'; } $args = array( 'base' => get_permalink( $post->post_parent ) . '%_%', 'format' => $format, 'current' => $paged, 'total' => $kids->max_num_pages ); echo paginate_links( $args ); wp_reset_postdata(); } } 

Примечание: непроверенный

Дополнительные параметры см. В соответствующих документах. Если вы хотите разделить вторичный запрос, который отображается в дополнение к основному запросу отдельно к последнему, вам нужно сделать еще пару шагов, я недавно объяснил им другой вопрос . Если вы, например, хотели бы другой переписать вместо страницы, то это означает, что вам нужно использовать другую переменную запроса, а затем выгружать ее, вы также можете найти всю информацию, необходимую для этого, в вопросе, который я связал.

Вариант 2:

Вы также можете получить разбивку на страницы. Это все еще зависит от настройки параметра paged и соответствующей переменной, см. Выше. Если вы хотите использовать другие функции ссылок на страницы, предлагаемые wordpress, например, previous_posts_link / next_posts_link() или posts_nav_link , это проще реализовать. Ключ здесь временно заменяет $wp_query как показано ниже, потому что эти функции по умолчанию – для большего количества параметров конфигурации, читающих документацию, – получают доступ к этому объекту для создания ссылок на страницы.

Код:

 global $post, $wp_query; $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $ancestors = array(); $ancestors = get_ancestors($post->ID,'page'); $parent = (!empty($ancestors)) ? array_pop($ancestors) : $post->ID; if (!empty($parent)) { $kids = new WP_Query( array( 'post_parent'=>$parent, 'post_type' => 'page', 'ignore_sticky_posts' => true, 'paged' => $paged ) ); // Put default query object in a temp variable $tmp_query = $wp_query; // Now wipe it out completely $wp_query = null; // Re-populate the global with our custom query $wp_query = $kids; if ($kids->have_posts()) { while ($kids->have_posts()) { $kids->the_post(); echo '<li>' . '<div>' . '<a href="' . get_permalink() . '">' . get_the_post_thumbnail() . '</a>' . '<span>' . '<a href="' . get_permalink() . '">' . get_the_title() . '</a>' . '</span><br/>'; echo '<div class="extrainfo">'; echo the_field("info_add"); echo '</div>'; echo '</div></li>'; } posts_nav_link(); // Restore original query object $wp_query = null; $wp_query = $tmp_query; wp_reset_postdata(); } }