Java, UX, HTML, CSS, WEB-design

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

[ad_1]

  • Гоце Митевски

  • 0 Комментарии

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

  • 8 минут чтения

  • WordPress, Техники, Админ

Краткое резюме ↬

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

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

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

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

  • Процесс профессиональной разработки WordPress
  • Написание эффективной документации для конечных пользователей WordPress
  • Случайное перенаправление в WordPress
  • Что можно и чего нельзя делать для стартапов WordPress

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

Еще после прыжка! Продолжить чтение ниже ↓

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

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

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

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

Вы, вероятно, сначала столкнетесь с плагином Matt Mullenweg Random Redirect. Тогда вы, вероятно, попробуете Random Redirect 2, который расширяет это.

Вместо этого сегодня я покажу вам пользовательскую реализацию, которую я использую. Это не «правильный» способ реализации случайного перенаправления; это всего лишь одно решение без плагинов, с которого можно начать и развивать.

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

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

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

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

То page-random.php шаблон страницы не будет включать обычные вызовы для загрузки шаблонов заголовка, боковой панели и нижнего колонтитула, потому что наша «Случайная» страница не будет генерировать никакого видимого вывода для пользователя; он просто перейдет (то есть перенаправит) на случайно выбранную статью. Поскольку нам нужно сделать только один запрос к базе данных (чтобы выбрать одну случайную статью для перенаправления), мы сделаем только один вызов 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() функция, которая получает постоянную ссылку на запись в качестве входных данных.

случайное перенаправление-wordpress-добавить-случайную-страницу
Создание «Случайной» страницы через административный интерфейс WordPress

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

случайное перенаправление-wordpress-добавить-случайную-страницу-главное-меню
Добавление ссылки на страницу «Случайный» в главном меню.

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

Вместо этого используйте WP_Query

Вышеприведенная реализация может быть легко адаптирована для непосредственного использования 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), // id 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 всего несколькими строками кода. Ничего сложного, ничего лишнего.

случайное перенаправление-wordpress-wikipedia-wikihow

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

Играйте в игру рандомизации!

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

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

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

  • «Как перенаправить пользователей на случайный пост в WordPress», WPBeginner
  • «Как сделать кнопку «Случайная публикация», Уэсли Рош.
  • «Случайный фрагмент сообщения», Отто на WordPress
  • «Перенаправить домашнюю страницу на случайную запись в блоге», Фрагменты кода WordPress
  • «Теги шаблона/get_posts()», WordPress Codex
  • «Ссылка на класс/WP_Query», WordPress Codex
Сокрушительная редакция
(аль)



[ad_2]
Source: https://smashingmagazine.com

Заключение

Вы ознакомились с статьей — Случайное перенаправление в WordPress

Пожалуйста оцените статью, и напишите комментарий.

Похожие статьи

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

Ваш адрес email не будет опубликован.

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

Название: Случайное перенаправление в WordPress . Краткое описание: [ad_1] ⭐ Гоце Ми . Дата публикации: 18.02.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

Кнопка «Наверх»