Иногда для лучшей перелинковки вебмастера отображают ссылку на пост, выбранный случайно. Такое колесо рулетки фортуны бывает полезно – просыпается интерес к давно опубликованным постам, и иногда просто ждешь, какой же пост выпадет на этот раз? Давайте посмотрим, как можно сделать вывод случайных постов, используя функцию и шорткод.
Добавьте код функции вывода случайных постов в файл functions.php используемой вами темы:
//создаем функцию function tp_random_posts( $post_count = 5, $template = 'loop' ){ // Создаем запрос $query_arguments = array( 'ignore_sticky_posts'=>1, 'posts_per_page' => $post_count, 'orderby'=>'rand' ); // Получаем параметры запроса query_posts( $query_arguments ); // Создаем циклы вывода постов <ul> if ( have_posts() ) : $post_index = 1; while ( have_posts() ) : the_post(); get_template_part( $template , get_post_format() ); $post_index = $post_index + 1; endwhile; endif; // Сбрасываем параметры запроса wp_reset_query(); </ul> }
Эта функция выбирает несколько случайных постов, и выводит их простым. Количество постов по-умолчанию равно 5, но вы можете указать и другое. После этого нужно создать шаблон для отображения списка постов – файл loop.php. Его нужно переписать в папку с темой. Он будет отвечать за то, как выглядит список постов. Как минимум он должен содержать:
<li class="entry-"> <a href="" rel="bookmark"></a> </li>
Чтобы вывести случайные посты, нужно вставить в шаблон вызов функции:
</pre> <p>Заметьте, что вы можете в этой функции указывать разные шаблоны для вывода случайных постов. По-умолчанию используется шаблон loop.php, но вы можете создать несколько разных шаблонов, и использовать функцию с ними в разным местах.</p> <p>Иногда бывает удобно выводить список случайных постов прямо в записи, используя шорткод. Чтобы создать шорткод для вывода случайных постов, вставьте в файл functions.php:</p> <pre> //создаем шорткод function tp_random_posts_shortcode( $atts, $content = null ){ extract(shortcode_atts( array( 'count' => 5, 'template' => 'loop' ), $atts)); tp_random_posts( $count, $template ); } add_shortcode('randomposts', 'tp_random_posts_shortcode');
По-умолчанию количество постов равно 5, а шаблон для их отображения – loop.php:
[randomposts count=5 template='loop']
Вы можете указать и другие значения параметров:
[randomposts count=3 template='rand-post-list']
Манипулируя функцией и шорткодом, а так же различными шаблонами для вывода случайных постов, каждый блок со случайными постами можно оформить индивидуально и выводить в разных местах блога.
