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

Как сделать журнал WordPress более интерактивным?
Вы пробовали случайное перенаправление?

Назовите это переработкой, если хотите, но случайное перенаправление не должно быть о retreading знакомой территории. Через случайное перенаправление, вы предлагаете читателям возможность прыгать случайным образом через ваши сообщения и обнаружить содержание, что они каким-то образом пропустили.

Дальнейшее чтение на SmashingMag:

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

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

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

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

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

Вы, вероятно, встретить Мэтт Mullenweg в случайных перенаправить плагин в первую очередь. Тогда вы, вероятно, попробовать случайные перенаправить 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
Создание “Случайной” страницы через интерфейс администрирования WordPress

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

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

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

Вместо этого использование WP-Кирид

Приведенная выше реализация может быть WP_Query легко адаптирована для непосредственного использования класса, а не get_posts() функции.

// source code from page-random.php implemented through WP_Query

// Random Redirection Page Template

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

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

// process the database request through WP_Query
while ( $my_random_post->have_posts () ) {
  $my_random_post->the_post ();
  // redirect the user to the random post wp_redirect ( get_permalink () );
  exit;
}

Основным преимуществом использования WP_Query является то, что он может принимать больше аргументов, чем get_posts() функция, таким образом, предлагая большую гибкость при создании конкретных запросов.

Еще несколько примеров

С get_posts() обоими и WP_Query , мы можем быть очень конкретными и осуществлять случайные перенаправления для должностей пользовательских типов или сообщений, которые принадлежат к определенным категориям.

Например, мы могли бы сделать WordPress перенаправить на статьи, опубликованные только в категории “Путешествие”:

// set arguments for WP_Query()
$args = array(
    'category_name' => 'travel', // remember, we are using category slug here
    'posts_per_page' => 1,
    'orderby' => 'rand'
);

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

// process the database request through WP_Query
while ( $my_random_post->have_posts () ) {
  $my_random_post->the_post ();
  // redirect the user to the random post wp_redirect ( get_permalink () );
  exit;
}

Или мы могли бы перенаправить на сообщения из всех категорий, за исключением “Некатегоризированные”:

// set arguments for WP_Query()
$args = array(
    'category__not_in' => array(1), //of the category to be excluded
    'posts_per_page' => 1,
    'orderby' => 'rand'
);

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

// process the database request through WP_Query
while ( $my_random_post->have_posts () ) {
  $my_random_post->the_post ();
  // redirect the user to the random post wp_redirect ( get_permalink () );
  exit;
}

Как насчет ограничения рандомизации до сообщений, опубликованных в 2011 году?

// set arguments for WP_Query()
$args = array(
    'posts_per_page' => 1,
    'year' => '2011',
    'orderby' => 'rand'
);

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

// process the database request through WP_Query
while ( $my_random_post->have_posts () ) {
  $my_random_post->the_post ();
  // redirect the user to the random post wp_redirect ( get_permalink () );
  exit;
}

Может быть, даже добавить фильтрации на специальном поле? Давайте ограничим случайное перенаправление на должности, которые имеют пользовательское поле с strawberry присвоенным значением.

// set arguments for WP_Query()
$args = array(
    'posts_per_page' => 1,
    'meta_value' => 'strawberry',
    'orderby' => 'rand'
);

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

// process the database request through WP_Query
while ( $my_random_post->have_posts () ) {
  $my_random_post->the_post ();
  // redirect the user to the random post wp_redirect ( get_permalink () );
  exit;
}

Приведенный выше пример может быть легко преобразован, чтобы ограничить случайное перенаправление на должности, которые имеют специальное поле long_description назначено. Помните, что наше единственное условие здесь для должности, чтобы иметь специальное поле назначено. Не имеет значения, какова ценность long_description пользовательского поля.

// set arguments for WP_Query()
$args = array(
    'posts_per_page' => 1,
    'meta_key' => 'long_description',
    'orderby' => 'rand'
);

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

// process the database request through WP_Query
while ( $my_random_post->have_posts () ) {
  $my_random_post->the_post ();
  // redirect the user to the random post wp_redirect ( get_permalink () );
  exit;
}

Вместо сообщений мы могли бы также реализовать случайное перенаправление на страницы:

// set arguments for WP_Query()
$args = array(
    'post_type' => 'page',
    'posts_per_page' => 1,
    'orderby' => 'rand'
);

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

// process the database request through WP_Query
while ( $my_random_post->have_posts () ) {
  $my_random_post->the_post ();
  // redirect the user to the random post wp_redirect ( get_permalink () );
  exit;
}

Мы могли бы даже создать случайное перенаправление для пользовательских типов постов:

// set arguments for WP_Query()
$args = array(
    'post_type' => 'my-custom-post-type',
    'posts_per_page' => 1,
    'orderby' => 'rand'
);

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

// process the database request through WP_Query
while ( $my_random_post->have_posts () ) {
  $my_random_post->the_post ();
  // redirect the user to the random post wp_redirect ( get_permalink () );
  exit;
}

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

random-redirection-wordpress-wikipedia-wikihow

Если случайное перенаправление все еще не имеет смысла для вас, перейти к Википедии и WikiHow и посмотреть, как их ссылки на случайные статьи работы.

Играть В рандомизации игры!

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

В общем, это отличная функция. Каждый интернет-журнал должен иметь его. Для этого требуется только один клик за запрос; это непредсказуемо, это весело, и это будет полезно для ваших читателей.

Дальнейшее чтение

Источник: smashingmagazine.com

Великолепный Журнал

Великолепный, сокрушительный, разящий (см. перевод smashing) независимый журнал о веб-разработке. Основан в 2006 году в Германии. Имеет няшный дизайн и кучу крутых авторов, которых читают 2 млн человек в месяц.

Добавить комментарий

%d такие блоггеры, как: