Иногда у нас на блоге появляются страницы, для которых мы выставляем родительскими другие страницы, то есть делаем их дочерними. Бывает даже так, что дочерние страницы оставляют пустыми. Но все же в них должно быть хотя бы немного текста для того, чтобы удовлетворить поисковые системы и посетителей. А давайте посмотрим на сниппет, который бы добавлял содержимое дочерних страниц на родительскую, примерно как в блоге?
Для этого мы создадим небольшую функцию, которая будет выводить на странице дочерние страницы (их заголовок, цитату и ссылки, если найдет таковые) с помощью шорткода, который можно будет вставить с помощью визуального редактора страниц WordPress.
Создаем функцию
function subpage_peek() {
global $post;
//запрашиваем дочерние страницы
$args = array(
'post_parent' => $post->ID,
'post_type' => 'page'
);
$subpages = new WP_query($args);
// создаем выходные данные
if ($subpages->have_posts()) :
$output = '<ul>';
while ($subpages->have_posts()) : $subpages->the_post();
$output .= '<li><strong><a href="'.get_permalink().'">'.get_the_title().'</a></strong>
<p>'.get_the_excerpt().'<br />
<a href="'.get_permalink().'">Читать подробнее ?</a></p></li>';
endwhile;
$output .= '</ul>';
else :
$output = '<p>Дочерних страниц не найдено.</p>';
endif;
// сбрасываем запрос
wp_reset_postdata();
// возвращаем что-то
return $output;
}
Этот код выполняет простой запрос к текущей странице.
- Запрашивает дочерние страницы
- Если запрос возвращает страницы, проходимся по ним и создаем выжимку в виде списка, который включает в себя кликабельный заголовок, цитату и ссылку на «Читать подробнее ?»
- Если запрос не возвращает ничего, то выводим сообщение, что «Дочерних страниц не найдено.» Здесь, естественно, вы можете написать все, что угодно.
- Не забываем обнулить конечные данные запроса.
- Возвращаем результаты, а не выводим их, так, чтобы можно было использовать их в виде шорткода
Создаем шорткод
add_shortcode('subpage_peek', 'subpage_peek');
Создание шорткодов из функций — очень простое занятие, особенно, если это встроенная в WordPress функция. Также вы можете просто вставить функцию в то место в шаблоне, где нужно её отобразить. А если уж вовсе изгаляться, то можно и собственный виджет сделать.
Заключение
Вот и всё, уважаемые читатели. Вот очень удобный путь организации дочерних страницы и организации предпросмотра их читателям. Ваш итоговый результат будет выглядеть примерно таким образом:
![articles[1]](https://wpincode.com/wp-content/uploads/2013/12/articles1.jpg)
