[![Как перенаправить пользователей на случайный пост в WordPress 1](https://coma.lv/wp-content/uploads/2016/09/Gemini_Generated_Image_whn2udwhn2udwhn2-3000px.webp)](https://coma.lv/wp-content/uploads/2016/09/Gemini_Generated_Image_whn2udwhn2udwhn2-3000px-1030x360.webp)

# Как перенаправить пользователей на случайный пост в WordPress

Sep 8, 2016/by [Vadim Pavlovich](https://coma.lv/ru/author/djcoma/)

Существует такая функция на сайтах в виде кнопок, когда пользователь кликает на неё, его переносят в случайный пост на сайте. Мы посчитали, что будет интересно добавить кнопку как в гугле “Мне повезёт”. В этой статье мы расскажем вам, как перенаправить пользователей на случайный пост в WordPress.

Откройте файл темы functions.php и создайте пустой файл, после чего вставьте следующий код:

add_action('init','random_add_rewrite'); function random_add_rewrite() { global $wp; $wp->add_query_var('random'); add_rewrite_rule('random/?$', 'index.php?random=1', 'top'); } add_action('template_redirect','random_template'); function random_template() { if (get_query_var('random') == 1) { $posts = get_posts('post_type=post&orderby=rand&numberposts=1'); foreach($posts as $post) { $link = get_permalink($post); } wp_redirect($link,307); exit; } }

**Пояснение сниппета:**

Этот сниппет добавляет переменную Random. После чего использует *template_redirect* и сообщает: если переменная random здесть, то нужно получить пост случайно. После чего происходит простое перенаправление.

Причина, почему сниппет использует 307 перенаправление – так как это временное перенаправление. Часто браузера кешируют 302 редирект, который известен своими временными перенаправлениями.

## Несколько возможных багов:

Если вы используете W3 Total Cache и у вас есть кеширующаяся база данных, то вам  надо добавить следующие правила к листу исключений:

/random/
/index.php?random=1

Если вы используете Yoast SEO плагин, то не используйте флажок перенаправления плохих ссылок в области постоянных ссылок, иначе код не будет работать.

---

*Наша специальность – разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации – [vadim@coma.lv](mailto:vadim@coma.lv), [+371 29394520](tel:+37129394520)*

---
