Перенаправление после входа в WordPress - PullRequest
46 голосов
/ 15 ноября 2011

Я создаю настроенную тему WordPress на основе существующего сайта.

Я хочу использовать созданную мной альтернативную панель мониторинга.

Как я могу направить пользователя на 'news.php 'после входа в систему вместо' /wp-admin/ '?

-

РЕДАКТИРОВАТЬ: Есть рабочий плагин для этого, но щедрость доступна для всехможно найти ручной способ сделать это через functions.php, так как это было бы более безопасно, чем использование стороннего плагина.

Ответы [ 13 ]

80 голосов
/ 15 ноября 2011

Это должно решить вашу проблему. Адаптировано из найденного ответа здесь.

function admin_default_page() {
  return '/new-dashboard-url';
}

add_filter('login_redirect', 'admin_default_page');
31 голосов
/ 26 марта 2013

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

Action Hooks & Filters включены в ядро, чтобы позволить модифицировать функциональность без изменения кода.

Пример использования фильтра login_redirect для перенаправления определенных пользователей можно найти здесь и является намного более надежным решением вашей проблемы.

Для вашей конкретной задачи вы хотите сделать это:

function login_redirect( $redirect_to, $request, $user ){
    return home_url('news.php');
}
add_filter( 'login_redirect', 'login_redirect', 10, 3 );
12 голосов
/ 18 ноября 2011

Это может помочь. Peter's Login Redirect

Перенаправление пользователей в разные места после входа и выхода из системы.

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

Вы можете использовать синтаксис [variable]username[/variable] в своих URL-адресах, чтобы система создавала динамический URL-адрес при каждом входе в систему, заменяя этот текст именем пользователя.В дополнение к имени пользователя, есть «userslug», «homeurl», «siteurl», «postid-23», «http_referer», и вы также можете добавить свой собственный URL-адрес «переменные» ...

7 голосов
/ 21 ноября 2011
add_action('wp_head','redirect_admin');
function redirect_admin(){
  if(is_admin()){
    wp_redirect(WP_HOME.'/news.php');
    die; // You have to die here
  }
}

Или, если вы хотите перенаправить только других пользователей:

add_action('wp_head','redirect_admin');
function redirect_admin(){
  if(is_admin()&&!current_user_can('level_10')){
    wp_redirect(WP_HOME.'/news.php');
    die; // You have to die here
  }
}
2 голосов
/ 24 августа 2015

Если у вас php 5.3+, вы можете использовать анонимную функцию, например:

add_filter( 'login_redirect', function() { return site_url('news'); } );
2 голосов
/ 15 ноября 2011

Может помочь плагин Theme My Login - он позволяет перенаправлять пользователей определенных ролей на определенные страницы.

1 голос
/ 21 апреля 2017

Пожалуйста, попробуйте это, это работает для любого перенаправления на WordPress

add_filter('woocommerce_login_redirect', 'wc_login_redirect'); 

function wc_login_redirect( $redirect_to ) {

   $redirect_to = 'PUT HERE URL OF THE PAGE';
   return $redirect_to;

}
0 голосов
/ 27 февраля 2019

Вы также можете использовать настраиваемую ссылку как:

https://example.com/wp-login.php?redirect_to=https://example.com/news.php
0 голосов
/ 22 февраля 2018
// add the code to your theme function.php
//for logout redirection
add_action('wp_logout','auto_redirect_after_logout');
function auto_redirect_after_logout(){
wp_redirect( home_url() );
exit();
}
//for login redirection
add_action('wp_login','auto_redirect_after_login');
function auto_redirect_after_login(){
wp_redirect( home_url() );
exit();
`enter code here`}
0 голосов
/ 12 июня 2017

Чтобы глобально перенаправить после успешного входа в систему, найдите этот код в wp-login.php, в разделе.

   <form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">

<input type="hidden" name="redirect_to" value="<?php echo esc_attr($redirect_to); ?>" />

и замените <?php echo esc_attr($redirect_to); ?> на ваш URL, куда вы хотите перенаправить.URL-адрес должен начинаться с http: // и заканчиваться перенаправлением другой / другой страницы в местоположение по умолчанию.

Выполнить перенаправление из той же вещи после регистрации в том же файле, но в разделе <form name="registerform">.

...