На многих веб-сайтах, особенно на блогах и информационных ресурсах, можно встретить секцию с случайными записями. Это полезный прием для владельцев сайтов, так как он помогает посетителям лучше ориентироваться в контенте ресурса.
Чтобы вывести случайные записи в WordPress, вы можете использовать встроенные функции платформы. Один из простейших способов — это использование функции WP_Query. С ее помощью можно создать новый запрос и настроить его параметры, например, указав тип записей, число выводимых записей и порядок сортировки.
Пример кода для вывода случайных записей:
<?php
$args = array(
'post_type' => 'post',
'orderby' => 'rand',
'posts_per_page' => 5
);
$random_posts = new WP_Query($args);
if ($random_posts->have_posts()) {
while ($random_posts->have_posts()) {
$random_posts->the_post();
echo '<h2><a href="' . get_permalink() . '">' . get_the_title() . '</a></h2>';
}
}
wp_reset_postdata();
?>
Этот код создаст запрос, который выберет 5 случайных записей из вашего блога. Вы можете изменять параметр posts_per_page, чтобы отобразить больше или меньше записей по своему усмотрению.
Кроме того, для более простого использования можно установить специальные плагины для вывода случайных записей, такие как Random Post Widget или WP Random Posts. Они не требуют навыков программирования и позволяют легко добавлять секцию со случайными записями на сайт через виджеты.
Помимо этого, случайные записи могут улучшить взаимодействие пользователей с вашим контентом, увеличив время, проведенное на сайте, и способствуя открытию новых интересных статей. Не забудьте периодически обновлять содержимое и следить за его актуальностью.
Как выводятся записи в WordPress?
В WordPress, по умолчанию, записи сортируются в обратном хронологическом порядке (новые записи показываются первыми). Это дает возможность пользователям всегда видеть актуальные материалы. Однако, что делать с более старыми записями, если их количество превышает сто? Пользователю придется просматривать их все по порядку, чтобы найти нужную. Один из способов представить старые материалы — это создать блок со случайными записями.
Кроме того, для улучшения навигации можно использовать категории и метки, позволяющие группировать контент по темам. Это значительно упрощает пользователю поиск конкретных записей. Также стоит рассмотреть использование виджетов с последними записями или самыми популярными материалами, которые будут отображаться на боковой панели или в подвале сайта.
Если вам нужно больше контроля над отображением записей, можно воспользоваться пользовательскими запросами (WP_Query) для создания индивидуальных списков записей, что позволит выводить их по заданным критериям, например, по автору или дате публикации. Использование плагинов, таких как «Related Posts» или «Content Views», также может помочь улучшить взаимодействие с контентом и удержание пользователей на сайте.
Как вывести случайные записи?
Изучим два метода решения этой задачи: первый — с помощью плагина, второй — путем добавления специального PHP-кода в файл functions.php. Данные записи будут отображаться в боковой панели, в соответствующем виджете.
Метод 1. Плагин Advanced Random Posts Widget
Данный виджет предлагает множество настроек для отображения случайных постов. Вы можете выбрать тип записей (по умолчанию — это обычные записи) для вывода, а также указать их количество и статус.

Во вкладке Thumbnail доступна опция показа миниатюры рядом с заголовком случайной записи.

Во вкладке Extras можно добавить дополнительную информацию о записях (даты создания и изменения), а также краткие описания постов. Для завершения всех настроек достаточно нажать кнопку Сохранить.

В результате главная страница сайта будет выглядеть следующим образом.

Метод 2. Создание шорткода с использованием PHP-кода
Другой способ вывода списка случайных записей заключается в создании специального шорткода, который можно интегрировать в виджет на боковой панели. Для этого необходимо внести PHP-код в файл functions.php активной темы вашего WordPress-сайта.
Если вы не знаете, как модифицировать functions.php, воспользуйтесь плагином ProFunctions для упрощения процесса.
В конце файла functions.php добавьте следующие строки:
function site_random_posts($atts) {
$atts = shortcode_atts(array(
'posts_per_page' => 5, // количество выводимых записей
), $atts);
$args = array(
'posts_per_page' => $atts['posts_per_page'],
'orderby' => 'rand', // сортировка случайным образом
);
$random_posts = new WP_Query($args);
$output = '';
while ($random_posts->have_posts()) {
$random_posts->the_post();
$output .= '- ' . get_the_title() . '
';
}
$output .= '
';
wp_reset_postdata();
return $output;
}
add_shortcode('site-random-posts', 'site_random_posts');
В результате будет создан шорткод [site-random-posts], который затем нужно вставить в виджет Текст. На сайте отобразятся 5 случайных записей в форме ненумерованного списка. Это значение можно изменить, установив желаемое количество в строке ‘posts_per_page‘ => 5.

Также смотрите: Как зарегистрировать произвольный тип записей в WordPress.
Вывод случайных записей из конкретной рубрики
Если вы хотите выводить случайные записи только из определённой рубрики, вам нужно немного изменить параметры запроса в PHP-коде. Включите в $args параметр ‘cat’, указав ID желаемой рубрики. Пример:
$args = array(
'posts_per_page' => $atts['posts_per_page'],
'orderby' => 'rand',
'cat' => 3, // замените 3 на ID нужной рубрики
);
После внесения изменений, случайные записи будут выводиться только из указанной рубрики.
Обсуждение: 2 Прохор 05.11.2021 в 18:26
Каким образом можно сделать так, чтобы записи в определённой рубрике выводились в случайном порядке? Было бы здорово, если бы это можно было реализовать через файл functions.php. Заранее спасибо за помощь!