CODYSHOP
темы и плагины для WordpressЕсли ваш сайт работает на 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(); ?>