Статьи

Материалы о дизайне и развитии Web-индустрии
  • 02.12.2019
  • Статьи
  • Просмотров:2451
  • Комментариев:0

Шорткод для вывода записей из категории

Уровень сложности:

Сегодня в статье рассмотрим как можно сделать свой шорткод для WordPress.
Какие цели могут быть у создания шорткода, и для чего это нужно?

С помощью шорткодов удобно создавать динамическое содержимое на странице, оно может быть разным, какое рассмотрим в статье.
Для примера рассмотрим код который выведет записи из рубрики по id с заданными параметрами.

Этот код вставляется в файл functions.php вашей темы… распологается по адресу /wp-content/themes/Название_вашей_темы

Код PHP

## ШОРТКОД вывода записи из категории по id
function func_short_category( $args ) {
ob_start();

	$posts = get_posts( array(
		'numberposts' => $args['post_num'],
		'category'    => array($args['id']),
		'orderby'     => 'date',
		'order'       => 'DESC',
		'post_type'   => 'post',
		'suppress_filters' => true, 
	) );
	global $post;
	//обертка для записей например <ul>
	?>
	<ul>
	<?php
	
	//выводим в записи в цикле
	foreach( $posts as $post ){		
		setup_postdata($post);	
		$category = get_the_category(); 
		?>
		<li>Дата:<?php echo get_the_date('d.m.Y'); ?>, Название записи:<?php echo get_the_title(); ?> Ссылка на запись:<a href="<?php the_permalink() ?>">Читать полностью...</a><br>
		Содержание записи:<?php echo mb_substr(get_the_excerpt(),0,180); ?>
	<?php
	}//конец вывода
	?>
	</ul>
	<?php
	
	wp_reset_postdata();
	wp_reset_query();

$output_string = ob_get_contents(); 
ob_end_clean(); 
return $output_string;
}
add_shortcode('category', 'func_short_category' );

Пояснения к коду:

  1. Мы создали функцию – func_short_category()
  2. Применили буферизацию для правильного вывода контента ob_start() и ob_end_clean() Это нам гарантирует то что вывод содержимого шорткода будет правильным – в том месте где помещен шорткод, если не добавить эти параметры то наш шорткод покажется вверху страницы, до загрузки контента.
  3. Создали переменную $posts в которой список аргументов, в соответствии с которыми будет получен результат.
    $args[‘id’] – id категории из которой выводим записи
    $args[‘post_num’] – количество выводимых записей, если поставить -1 выведутся все записи из категории
    – Это наши параметры они содержатся в шорткоде, прописываются след образом [category id=”2″ post_num=”3″]
  4. Объявили глобальную переменную $post для доступа к данным текущего поста.
  5. В цикле получили наши посты, в примитивном выводе, внешний вид настраивается индивидуально, в зависимости от поставленных задач.
  6. Добавили шорткод с помощь функции – add_shortcode(‘category’, ‘func_short_category’ );

Наш шорткод выводится в тексте статьи таким образом [category id=”2″ post_num=”3″]
В цикле мы вывели – Дату поста, Название поста, Ссылку на запись, Краткое содержание записи.

Вот таким не хитрым образом можно выводить записи в статье, примеров использования шорткодов много, другие варианты использования в следующих выпусках статей 🙂

Комментарии

Написать комментарий

Оставить комментарий

*Поля обязательны для заполнения