Однажды мне понадобилось реализовать такую функцию, чтобы через определенное и заданное время посты на сайте меняли свое расположение и каждому посетителю они показывались в случайном порядке. Необходимо в произвольном порядке сортировать записи на сайте, сохраняя их положение.
В голову сразу пришла идея прописать функцию рандомного вывода постов на главной:
<?php global $query_string; query_posts($query_string . "&orderby=rand"); // сортирует посты в рандомном порядке ?> <?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'content', get_post_format() ); ?> <?php endwhile; ?> <?php endif; ?>
Однако если посетитель сайта обновит страницу, то посты снова поменяют порядок. Так как же быть?
Для решения проблемы я установил WordPress плагин WP Super Cache, который сохраняет сайт в кэш. В настройках плагина прописываем время, в течении которого посты не должны будут менять свое положение, то есть то приблизительное время, которое посетитель будет на сайте, например 20 минут:
Теперь в течении 20 минут посты не изменят своего положения.