add_action('init','add_random_rewrite'); function add_random_rewrite() { global $wp; $wp->add_query_var('random'); add_rewrite_rule('random/?$', 'index.php?random=1','top'); } add_action('template_redirect','template_random'); function template_random() { if (get_query_var('random') == 1) { $ran_posts = get_posts('post_type=post&orderby=rand&numberposts=1'); foreach($ran_posts as $ran_post) { $ran_link = get_permalink($ran_post); } wp_redirect($ran_link,307); exit; } }
Вот и все, что Вам надо сделать. Теперь создадим кнопку, со ссылкой на yourdomain.com/random/, а фрагмент выше позаботиться об остальном.
Объяснение фрагмента:
Этот фрагмент сначала добавляет в запрос случайную переменную. Затем он использует template_redirect из WordPress, получает пост случайным образом. Потом делает простой 307 редирект.
Поэтому сниппет использует 307 редирект (временное перенаправление). Браузеры часто кэшируют 302 редирект, который становится известен, как временное перенаправление.
Если у Вас стоит плагин W3 Total Cache и у вас есть кэширование на базу данных, то Вам необходимо применить следующие правила:
/random/
/index.php?random=1
Если вы пользуетесь плагином Yoast’s WordPress SEO, то не используйте флажок перенаправление сломанных URL иначе наш код не будет работать.
Теперь вы можете создать и изучить кнопки которые есть на нашем сайте.
Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!
Спасибо! Ваша заявка принята
Спасибо! Ваша заявка принята