Вывод последних записей в WordPress

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

Способ 1.

Последние записи с помощью блока Gutenberg

Блок «Последние записи» в редакторе Gutenberg позволяет быстро и без кода вывести свежие публикации на страницу и гибко настроить их отображение под задачи сайта.

Откройте страницу или запись в редакторе Gutenberg. Нажмите «+» (Добавить блок) и выберите из списка «Последние записи».

Основные настройки блока

После добавления блока справа появится панель настроек. Здесь можно задать:

  • Количество записей — укажите, сколько последних постов выводить.
  • Отображение даты — включите, если нужно показывать дату публикации.
  • Отображение автора — добавляет имя автора к записи.
  • Показ изображения — включает миниатюры (если они заданы у записей).
  • Сортировка и фильтрация — позволяет выводить записи из определенных категории и сортировать записи по дате или названию.

В итоге, в зависимости от вашего оформления, вы получите примерно такой результат.

Такой способ не требует кода и подходит для быстрого вывода последних публикаций с гибкой настройкой прямо в редакторе.

Способ 2.

Последние записи с помощью кода

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

В WordPress есть универсальный класс WP_Query, который позволяет выполнять запросы к базе данных для получения записей по различным параметрам.

На основе WP_Query напишем свою функцию, которая будет возвращать HTML-код последних записей.

Готовый код последних записей:

<?php /**
 * Функция получения последних записей в WordPress
 *
 * @return void
 */
function get_latest_posts()
{
    $args = [
        'post_type' => 'post', // Получаем только записи
        'posts_per_page' => 6, // Количество записей для получения
        'post_status' => 'publish', // Только опубликованные записи
    ];

    $query = new WP_Query($args);

    if ($query->have_posts()) {
?>
        <div class="latest-posts">
            <?php while ($query->have_posts()) {
                $query->the_post(); ?>
                <a href="<?php echo get_the_permalink() ?>" class="latest-posts__item">
                    <?php if (has_post_thumbnail()) : ?>
                        <span class="latest-posts__image"><?php the_post_thumbnail('medium'); ?></span>
                    <?php endif; ?>
                    <span class="latest-posts__title"><?php the_title(); ?></span>
                </a>
            <?php
            } ?>
        </div>
<?php
    }
}

Добавьте этот код в functions.php и сохраните изменения. Далее откройте файл, в котором будут выводиться последние записи, и вставьте вызов функции:

get_latest_posts();

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

Добавим стили в файл style.css

.latest-posts{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-gap: 26px;
}

.latest-posts__item{
	display: flex;
	flex-direction: column;
}

.latest-posts__image{
	max-width: 100%;
	height: 160px;
}

.latest-posts__image img{
	height: 100%;
	width: 100%;
	object-fit: cover;
}

.latest-posts__title{
	line-height: 1.35;
	margin-top: 12px;
}

С учетом этих стилей блок последних записей будет выглядеть примерно так:

Как получить последние записи определенной категории

Чтобы получить последние записи из определенной рубрики сайта, нужно немного изменить код функции get_latest_posts(). В массив параметров $args необходимо добавить поле с ID рубрики.

$args = [
	'post_type' => 'post', // Получаем только записи
	'posts_per_page' => 6, // Количество записей для получения
	'post_status' => 'publish', // Только опубликованные записи
	'cat' => 5, // Получаем записи из категории с ID 5
];

Теперь будут выводиться только последние записи из категории с ID = 5.

Способ 3.

Последние записи с помощью шорткода

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

Будем использовать функцию get_latest_posts из предыдущего способа, немного модифицировав её.

Откройте файл functions.php и добавьте следующий код:

<?php
/**
 * Функция для шорткорда последних записей в WordPress
 *
 * @return void
 */
function get_latest_posts()
{
	$args = [
		'post_type' => 'post', // Получаем только записи
		'posts_per_page' => 6, // Количество записей для получения
		'post_status' => 'publish', // Только опубликованные записи
	];

	$query = new WP_Query($args);

	if ($query->have_posts()) {
		ob_start();
?>
		<div class="latest-posts">
			<?php while ($query->have_posts()) {
				$query->the_post(); ?>
				<a href="<?php echo get_the_permalink() ?>" class="latest-posts__item">
					<?php if (has_post_thumbnail()) : ?>
						<span class="latest-posts__image"><?php the_post_thumbnail('medium'); ?></span>
					<?php endif; ?>
					<span class="latest-posts__title"><?php the_title(); ?></span>
				</a>
			<?php
			} ?>
		</div>
<?php
		return ob_get_clean();
	}
}

add_shortcode('latest_posts', 'get_latest_posts');

Вставьте шорткод [latest_posts] в содержимое статьи или страницы, чтобы вывести последние записи.

Сохраните запись и проверьте результат. Блок с последними записями встроен прямо в содержимое статьи.

Заключение

Теперь вы можете выбрать подходящий способ вывода последних записей в WordPress в зависимости от задач проекта и уровня подготовки. Экспериментируйте с настройками и кодом, чтобы добиться оптимального результата для вашего проекта.