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

Определимся с HTML разметкой:

<div class="random-post-button">
	<a href="random post url">Случайная запись</a>
</div>

Здесь мы добавляем ссылку. Вместо текста вы можете использовать, например, иконки. Завернем ссылку в div с классом random-post-button. Это позволит нам позже красиво её оформить.

Теперь можем получить url случайной записи. Выборка из постов будет производиться не в момент нажатия на кнопку, а при каждой загрузке страницы.

<?php
$args = new WP_Query(array(
	'posts_per_page' 		=> '1',
	'no_found_rows' 		=> true,   // только одна запись
	'orderby'			=> 'rand', // случайная выборка
	'ignore_sticky_posts' 		=> true,   // исключаем прилепленные записи
));
if ( $args->have_posts() ) :
	while ( $args->have_posts() ) : $args->the_post();
	$random_url = get_permalink(); ?>
		<!--random button tags here-->
	<?php endwhile; ?>
<?php endif; wp_reset_query(); ?>

Чтобы получить случайный пост, воспользуемся php классом WP_query, установив количество получаемых url, а также параметр «порядок сортировки» — случайный.

Соберем все это в функцию. Разместите её в function.php. Окончательный код будет выглядеть следующим образом:

function random_post_button() {
	$args = new WP_Query(array(
		'posts_per_page' 		=> '1',
		'no_found_rows' 		=> true,
		'orderby'			=> 'rand',
		'ignore_sticky_posts'		=> true,
	));
	
	if ( $args->have_posts() ) :
		while ( $args->have_posts() ) : $args->the_post();
		$random_url = get_permalink(); ?>
		<div class="random-post-button">
	        <a href="<?php echo $random_url;?>">Random Post</a>
	    </div>
		<?php endwhile;
	endif; wp_reset_query(); 
}

Выводить кнопку нужно так:

<?php random_post_button(); ?>

Добавить комментарий