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








