Вывод дочерних страниц в WordPress

Вывод дочерних страниц в WordPress
Комментарии: 11

Рассмотрим как вывести информацию о дочерних страницах в Wordpress. Пример может пригодиться при реализации раздела со статьями или новостями.

В шаблоне (по-умолчанию «page.php») делаем выборку, указав в качестве параметра идентификатор родительской страницы. Узнать идентификатор можно в панели администрирования из адресной строки или воспользоваться функцией «get_the_ID()», которая возвращает ID текущей страницы.

$stati_children = new WP_Query(array(
  'post_type' => 'page',
  'post_parent' => get_the_ID()
  )
);

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

if($stati_children->have_posts()) :
  while($stati_children->have_posts()): $stati_children->the_post();
      echo '<h2>'.get_the_title().'</h2>';
      echo '<p>'.get_the_excerpt().'</p>';
      echo '<p><a href="'.get_the_permalink().'">'.Подробнее.'</a></p>';
  endwhile;
endif; wp_reset_query();

Результат работы:

Статьи в wordpress

Добавление аннотаций к страницам в Wordpress

Функция «get_the_excerpt()» в Wordpress выводит начало содержимого страницы. Для разделов статей или новостей может потребоваться вывод аннотаций, отличных от контента страницы. Сделать это можно воспользовавшись скрытым полем «Цитаты». Чтобы поле появилось в панели администрирования в конец файла «functions.php» добавляем строку.

add_post_type_support( 'page', 'excerpt' );

Затем, открываем на редактирование любую страницу и в правом верхнем углу кликаем по ссылке «Настройки экрана». В раскрывашемся окне выставляем галку как на скриншоте. После обновления страницы внизу появится дополнительное поле. Если оно не пустое, то его содержимое будет передаваться в «get_the_excerpt()».

Настройка цитат в wordpress

Добавление изображений

Чтобы к аннотации подгружать изображение достаточно его прикрепить к странице через стандартный функционал движка, а в шаблоне вывода получать к нему путь.

echo '<img src="'.get_the_post_thumbnail_url( get_the_id(), 'thumbnail' ).'">';
  • «get_the_id()» — идетификатор статьи, берется автоматически из цикла;
  • «thumbnail» — масштаб изображения, может быть также «medium», «large» или «full».
Темы:
Wordpress
Ещё интересное — 2
Комментарии —
  1. Дмитрий Егоров
    Дмитрий Егоров24 декабря 2017, 11:55#
    Спасибо, всё работает!
    1. Rain
      Rain08 августа 2018, 11:44#
      Спасибо за статью
      1. Александр
        Александр01 октября 2018, 11:23#
        Здравствуйте, спасибо за статью.
        Всё отлично работает, но выводит только последние 10 страниц, подскажите пожалуйста, как вывести больше?
        1. Andy Si02 октября 2018, 10:00#
          Добрый день. Нужно добавить параметр в WP_Query
          'posts_per_page' => -1
          1. Александр
            Александр02 октября 2018, 10:03#
            Добрый день.
            Спасибо, количество страниц было ограничено в настройках WP.
            1. Александр
              Александр07 октября 2018, 10:41#
              Здравствуйте.
              Сейчас у меня всё хорошо работает, страницы выводятся по дате создания, сначала выводятся наиболее свежие. Подскажите пожалуйста, как поменять сортировку, мне понадобилось выводить сначала старые, а потом свежие.
              Спасибо.
              1. Andy Si07 октября 2018, 12:33#
                Добрый день. Добавить параметры:
                'orderby' => 'publish_date',
                'order' => 'DESC',
                или ASC, в порядке возрастания даты
                1. Александр
                  Александр07 октября 2018, 12:38#
                  Огромное спасибо.
          2. VladChV
            VladChV02 февраля 2019, 14:44#
            Спасибо. Все ок.

            П.С.: клевое приведение
            1. Ilia Govorkov
              Ilia Govorkov28 декабря 2020, 14:35#
              Добрый день! А есть возможность сделать такую же выдачу, но с подгрузкой страниц?
              1. Andy Si28 декабря 2020, 15:46#
                Добрый день.
                Можно, но это более сложная тема, которую я не готов описать.
              © REALADMIN.RU   2024 г.
              Страница сгенерирована: 0,1867 s | 4 mb.
              На каком уровне Вы играете в шахматы?
              OPROS