Как перенаправлять пользователей в WordPress

Опубликовано: 2018-08-08

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

Хотя перенаправления обычно оставляют разработчикам, мы собираемся показать вам несколько советов, которые позволят вам выполнить эту задачу самостоятельно.

Как перенаправить определенные роли пользователей после успешного входа в систему

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

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

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

  1. Откройте файл functions.php
  2. Скопируйте и вставьте следующий код:
 функция my_login_redirect ($ url, $ request, 
$ user) {if ($ user && is_object ($ user) && 
is_a ($ user, 'WP_User')) {
if ($ user-> has_cap ('administrator') или 
$ user-> has_cap ('автор')) {
$ url = admin_url ();
} еще {
$ url = home_url ('/ настраиваемая-страница /');
}
}
вернуть $ url;
}
add_filter ('login_redirect', 
'my_login_redirect', 10, 3);
  1. Сохранить изменения

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

Вы можете легко изменить URL-адреса, изменив переменную $ url в 4- й и 6- й строках, и, следовательно, направить своих пользователей к любым сообщениям / страницам, которые вы для них создали.

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

 if ($ user-> has_cap ('administrator')) {

Вместо удаления авторов вы можете добавить и другие роли; Вам решать, кто окажется на какой странице.

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

Перенаправление пользователей после входа в систему с помощью плагина Peter's Login Redirect

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

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

Перенаправление входа Петра

Хотя существует бесчисленное количество плагинов WordPress, предназначенных для того же, мы выбрали перенаправление входа Питера для этой части статьи.

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

Если вам этого недостаточно, и вы хотите еще больше улучшить свои перенаправления, перенаправление входа в систему Питера поможет вам. Если вы, например, создали определенную страницу для каждого пользователя, вы можете сгенерировать URL-адрес прямо из плагина. В этом случае простого короткого кода, описанного в плагине, будет достаточно, чтобы ввести имя пользователя и, таким образом, привести этого конкретного пользователя на его / ее конкретную страницу.

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

Если вам нужно было управлять переадресацией входа, выхода и регистрации, Peter's Login Redirect предоставит вам практически все, что вам нужно. О да, мы упоминали, что плагин бесплатный? Вы можете получить его из репозитория плагинов WordPress и установить за секунды, после чего все, что вам нужно сделать, это перейти в Настройки -> Перенаправления входа / выхода .

Как перенаправить пользователя WordPress после выхода из системы

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

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

В следующих нескольких строках мы собираемся показать вам, как легко перенаправить пользователя на любой URL-адрес, который вы хотите. Если вы не хотите использовать код для перенаправления, мы собираемся показать вам простой плагин, который сделает все это за вас. Но перед этим перенаправим пользователя на домашнюю страницу:

  1. Откройте файл functions.php
  2. Скопируйте и вставьте следующий код:
 add_action ('wp_logout', 'auto_redirect_after_logout');
function auto_redirect_after_logout () {
wp_redirect (home_url ());
выход();
}
  1. Сохранить изменения
  2. Выйдите из системы и наслаждайтесь своей красивой домашней страницей

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

 add_action ('wp_logout', 'auto_redirect_after_logout');
function auto_redirect_after_logout () {
wp_redirect ('http://www.firstsiteguide.com');
выход();
}

Если вы хотите сделать больше с функцией wp_redirect, вы можете узнать о ней больше на страницах WordPress Codex.

Перенаправление входа и выхода

ЦЕНА: Бесплатно

Перенаправления входа и выхода


Этот бесплатный плагин относительно прост и отлично справится со своей задачей. Вместо того, чтобы работать с кодом, перенаправление входа и выхода создаст дополнительный сегмент на странице настроек. После установки и активации вам нужно перейти в « Настройки» -> «Общие» и прокрутить страницу до конца . Здесь вы найдете отдельные поля ввода для перенаправления входа и выхода. Введите желаемые URL-адреса, сохраните изменения, и все готово!

Если вам нужно больше вариантов перенаправления для вашего веб-сайта WordPress, мы рекомендуем вам проверить плагин 5sec Redirect, который может помочь вам перенаправить любую публикацию, страницу, категорию, тег или пользовательский URL. Это позволит вам скрыть свои URL-адреса, что может быть отличным средством для сокрытия партнерских ссылок или любых URL-адресов от посетителей. Плагин также показывает статистику по каждой перенаправленной ссылке, чтобы вы знали, что происходит на сайте.

Перенаправлять пользователей после оставления комментария

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

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

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

Перенаправить пользователя после отправки комментария:

  1. Откройте файл functions.php
  2. Скопируйте и вставьте этот код в файл:
 function redirect_after_comment () {
wp_redirect ('/ спасибо /');
выход();
}
add_filter ('comment_post_redirect', 
'redirect_after_comment');
  1. Измените название страницы на 2- й строке
  2. Сохранить изменения

Вот и все. Теперь вы можете продолжить и протестировать функцию. Откройте любой из ваших постов и оставьте комментарий. Если вы все сделали правильно, вы должны оказаться на странице http: /www.yoursite.com/thank-you или на странице, указанной во второй строке вашего кода.

Страница благодарности

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

Хотя эта функция предлагает простой и быстрый способ перенаправления пользователей после того, как они оставят комментарий, вас может заинтересовать плагин, который предоставит вам некоторые дополнительные функции.

Перенаправлять пользователей после поиска, если был найден только один результат

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

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

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

Посмотрим, как это сделать:

  1. Откройте functions.php
  2. Скопируйте этот код и вставьте его в конец файла:
 add_action ('template_redirect', 
'redirect_search_result);
function redirect_search_result () {
if (is_search ()) {
глобальный $ wp_query;
если ($ wp_query-> post_count == 1 && 
$ wp_query-> max_num_pages == 1) {
wp_redirect (get_permalink ( 
$ wp_query-> posts ['0'] -> ID));
выход;
}
}
}
  1. Сохранить изменения

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

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

Перенаправлять пользователей, когда в категории найдено только одно сообщение

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

Перенаправить пользователя, если в категории или теге был только один пост:

  1. Откройте файл functions.php
  2. Скопируйте и вставьте следующий код:
 function redirect_to_post () {
глобальный $ wp_query;
if (is_archive () && $ wp_query-> post_count == 1) {
the_post ();
$ post_url = get_permalink ();
wp_redirect ($ post_url);
}
} add_action ('template_redirect', 'redirect_to_post');
  1. Сохранить изменения

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

Поскольку некоторые пользователи могут запутаться в этом, было бы неплохо включить настраиваемое сообщение, которое сообщит пользователям, что был найден только один результат и что произошло перенаправление. Если вы хотите сделать это, вы можете оставить сообщение вверху сообщения / страницы, на которую был перенаправлен пользователь, вставив простой оператор «echo». В этом случае ваш код будет выглядеть так:

 function redirect_to_post () {
глобальный $ wp_query;
if (is_archive () && $ wp_query-> post_count == 1) {
the_post ();
$ post_url = get_permalink ();
wp_redirect ($ post_url);
}
echo "Поскольку был найден только один результат, 
вы были перенаправлены на этот пост / страницу! ";
}
add_action ('template_redirect', 'redirect_to_post');

Теперь, когда даже сообщение было реализовано, все готово, и вам не нужно заботиться о тех категориях и тегах, которые содержат только одно сообщение / страницу. Но не позволяйте этой функции быть оправданием для того, чтобы не писать новые статьи в этой категории.

Перенаправлять пользователей на случайную страницу в WordPress

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

Хорошо, вы не будете перенаправлять пользователя на случайную публикацию без его ведома или, конечно же, делать это на домашней странице. Но вы можете создать простую кнопку или ссылку, по которой пользователь может щелкнуть, после чего он будет перенаправлен на другую страницу вашего сайта. Может это галерея. Может быть, классная передовая статья, которую вы написали много лет назад. Кто знает. Это может быть весело.

Давайте начнем:

  1. Сначала вам нужно подготовить ссылку для перенаправления. Откройте ваш файл functions.php
  2. Скопируйте и вставьте следующий код:
 add_action ('инициализация', 'random_add_rewrite');
function random_add_rewrite () {
глобальный $ wp;
$ wp-> add_query_var ('случайный');
add_rewrite_rule ('случайный /?
  1. Сохранить изменения
  2. Перейдите на www.yourdomain.com/?random=1.

, 'index.php? random = 1', 'вверху'); } add_action ('template_redirect', 'random_template'); функция random_template () {if (get_query_var ('random') == 1) {$ posts = get_posts ('post_type = post & orderby = rand & numberposts = 1'); foreach ($ posts как $ post) {$ link = get_permalink ($ post); } wp_redirect ($ ссылка, 307); выход; }}

После этого вы готовы создать свою ссылку / кнопку. Все, что вам нужно сделать, это ссылка на http://www.yourdomain.com/?random=1, и каждый раз, когда пользователь открывает страницу, он будет перенаправлен на случайную страницу. Наслаждайтесь своей новой функцией.

Перенаправляем вас к заключению

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

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