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(); ?>