Выводим цитаты дочерних страниц с помощью шорткода

Иногда у нас на блоге появляются страницы, для которых мы выставляем родительскими другие страницы, то есть делаем их дочерними. Бывает даже так, что дочерние страницы оставляют пустыми. Но все же в них должно быть хотя бы немного текста для того, чтобы удовлетворить поисковые системы и посетителей. А давайте посмотрим на сниппет, который бы добавлял содержимое дочерних страниц на родительскую, примерно как в блоге?

Для этого мы создадим небольшую функцию, которая будет выводить на странице дочерние страницы (их заголовок, цитату и ссылки, если найдет таковые) с помощью шорткода, который можно будет вставить с помощью визуального редактора страниц 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]

Скачать исходные файлы

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top