Поиск по сайту:
Не верьте словам ни своим, ни чужим, верьте только делам и своим, и чужим (Л. Толстой).

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
13.07.2015
Как перенаправлять пользователей на случайный пост

Одной из новых функций, которые мы добавили в наш новый дизайн, эта функция называется “знакомства”. При нажатии пользователем на кнопку, происходит перенаправление на случайный пост на сайте. Ранее, мы сделали так, что пользователи не были направлены на страницу, которая будет отображать случайный пост. Было несколько проблем с этим. Одна из которых была в том что пользователь не знал фактический URL страницы. Во время моей сессии, я написал этот фрагмент. Ну короче говоря, в этой статье, мы расскажем, как перенаправлять пользователей на случайный пост.
Откройте ваш файл темы functions.php или создайте пустой файл плагина и вставьте нижеприведенный код:

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 иначе наш код не будет работать.

Читать  Как объединить два wp_query в одном главном запросе

Теперь вы можете создать и изучить кнопки которые есть на нашем сайте.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Рекомендуемое
Вы когда нибудь хотели добавить специализированный контент для вашего сайта…

Спасибо!

Теперь редакторы в курсе.