Случайное перенаправление в WordPress

Если вы запускаете онлайн-журнал, большинство читателей никогда не будет просматривать ваш архив, даже если вы разработали аккуратную страницу архива. Это не ваша вина, просто то, что находится в архивах не очень актуально в наши дни. Итак, как же на самом деле вы можете заставить читателей закапываться в него, не принуждая их к этому? Как пригласить их (пере)читать так, чтобы им не было скучно? Как сделать ваш WordPress журнал более интерактивным?

Вы пробовали случайное перенаправление?

Если вам так нравится, называйте это переработкой, но случайное перенаправление не должно отражать знакомые территории. Благодаря случайному перенаправлению, вы предоставляете читателям возможность случайным образом перепрыгивать с поста на пост и знакомится с новым для себя контентом, который они почему-то упустили.

Идея действительно проста. Все, что вам нужно сделать, это создать гиперссылку с именем, скажем, “Случайная статья” — при нажатии на которую читатель будет перенаправлен на случайно выбранную статью.

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

Для реализации случайного перенаправления в WordPress, вы, как правило, должны работать со следующими тремя вещами:

  • Страница для обработки перенаправления,
  • Запрос на выбор сообщения из базы данных,
  • Какой-то механизм инициирующий перенаправление.

Конечно, многие из вас, возможно, захотят использовать плагин. Это абсолютно нормально, пока вам не требуется больше возможностей, чем он дает.

Вы, вероятно, столкнетесь с плагином Мэта Муленвега Random Redirect в первую очередь. Затем вы, наверное, испробуете Random Redirect 2, который расширяет функционал предыдущего.

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

Мы будем работать с тремя вещами, упомянутыми в списке выше. Давайте ближе познакомимся с идеей.

Простое решение

Мы реализуем случайное перенаправление через страницу WordPress, которую мы назовем просто Random. Создание этой новой страницы в разделе администратора будет последним нашим шагом. Почему? Потому что мы не хотим, чтобы перенаправляющая страница была доступна, прежде чем она будет полностью реализована.

В соответствии со структурой шаблона WordPress, если вы создаете файл шаблона страницы с именем page-random.php всякий раз, когда пользователь загружает страницу связанную с меткой random, она будет загружаться через шаблон page-random.php. Это хорошо известная фича WordPress и она также полезна для нашего случайного перенаправления.

Шаблон страницы page-random.php не будет включать в себя обычные запросы загрузки шаблонов хедера, боковой панели и футера, потому что наша страница “Random” не будет генерировать какой-либо видимый вывод для пользователей, она будет просто перепрыгивать (то есть перенаправлять) к случайно выбранной статье. Поскольку нам нужно сделать только один запрос из базы данных (для выбора одной случайной статьи на которую будет совершено перенаправление), мы сделаем только один вызов функции get_posts() в шаблоне, и используем цикл foreach для обработки вывода.

Функция get_posts() принимает только два аргумента в качестве входных данных, с помощью которых мы уточняем, что мы хотим получить только один случайный пост. Для аргумента orderby , задано значение rand, это включает рандомизацию в WordPress. Нам не нужно, чтобы указывать значение post_type, потому что оно уже задано как post по умолчанию для функции get_posts(). Нам также не нужно указывать значение post_status, потому что значение по умолчанию это publish, как раз то, то нам нужно.

// source code from page-random.php

// Random Redirection Page Template

// set arguments for get_posts()
$args = array(
    'numberposts' => 1,
    'orderby' => 'rand'
);

// get a random post from the database
$my_random_post = get_posts ( $args );

// process the database request through a foreach loop
foreach ( $my_random_post as $post ) {
  // redirect the user to the random post
  wp_redirect ( get_permalink ( $post->ID ) );
  exit;
}

Таким образом, мы сначала сохраняем данные из get_posts() в переменную, а затем обрабатываем их в цикле foreach. Магия происходит в цикле foreach, когда перенаправление инициируется функцией wp_redirect(), у которой есть постоянная ссылка поста и его исходные данные.

random-redirection-wordpress-add-random-page Создание страницы “Random” в панели администратора WordPress

Сейчас единственное, что нам нужно сделать, это зайти в панель управления WordPress, создать новую пустую страницу с именем random, и опубликовать её. Затем, если вы перейдете по адресу http://www.mywebsite.com/random/, вы будете автоматически перенаправлены на случайную статью.

random-redirection-wordpress-add-random-page-main-menu Добавление ссылки на страницу “Random” в главном меню.

Теперь мы можем добавить ссылку в главное меню, чтобы сделать эту страницу легко доступной.



Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.