Последние новости:

Поиск по сайту:

Случайные открытия делают только подготовленные умы (Паскаль).

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

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

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

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

Читать  Как исправить Missing MySQL Extension Error в WordPress
Если статья понравилась, то поделитесь ей в социальных сетях:

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

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

**ссылки nofollow

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Статьи партнеров:

Рекомендуемое
Вы когда нибудь хотели добавить специализированный контент для вашего сайта…
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить

Спасибо! Ваша заявка принята

close

Спасибо! Ваша заявка принята

close