Подтвердить что ты не робот

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

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

Я хочу использовать альтернативную панель, которую я создал.

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

-

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

4b9b3361

Ответ 1

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

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

add_filter('login_redirect', 'admin_default_page');

Ответ 2

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

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

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

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

function login_redirect( $redirect_to, $request, $user ){
    return home_url('news.php');
}
add_filter( 'login_redirect', 'login_redirect', 10, 3 );

Ответ 3

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

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

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

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

Ответ 4

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
  }
}

Ответ 5

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

Ответ 6

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

add_filter( 'login_redirect', function() { return site_url('news'); } );

Ответ 7

Пожалуйста, попробуйте это, это работает для любого перенаправления на 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;

}

Ответ 8

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

Как уже было сказано другими (ответы Дэна и Трэвиса), правильный ответ - использовать фильтр login_redirect.

Ответ 9

// Used theme functions.php  
add_action('login_form', 'redirect_after_login'); 
function redirect_after_login() 
{     
global $redirect_to; 
if   (!isset($_GET['redirect_to'])) 
{ 
$redirect_to =   get_option('sample-page');
//  sample-page = your page name after site_url
} }

Ответ 10

Чтобы глобально перенаправить после успешного входа в систему, найдите этот код в 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">.

Ответ 11

// 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'}

Ответ 12

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

https://example.com/wp-login.php?redirect_to=https://example.com/news.php

Ответ 13

Файл functions.php не имеет ничего общего с переадресацией на вход, что вы должны рассматривать как файл wp-login.php, вы можете фактически изменить весь интерфейс входа в систему и заставить пользователей перенаправлять на ваши пользовательские страницы вместо каталога /wp -admin/.

Откройте файл с помощью Блокнота, если вы используете Windows или любой текстовый редактор, Prese Ctrl + F (в окне) Найдите "wp-admin/" и измените его на папку, которую вы хотите перенаправить, после входа в систему, все еще в том же файле. Нажмите Ctrl + F, найдите "admin_url" и измените имя файла, имя файла по умолчанию есть "profile.php"... после просто сохранить и попробовать.

if ( !$user->has_cap('edit_posts') && ( empty( $redirect_to ) || $redirect_to == 'wp-admin/' || $redirect_to == admin_url() ) )
        $redirect_to = admin_url('profile.php');
    wp_safe_redirect($redirect_to);
    exit();

Или вы можете использовать "плагин регистрации-входа" http://wordpress.org/extend/plugins/registration-login/, просто отредактируйте URL-адреса перенаправления и ссылки туда, где вы хотите он перенаправляется после входа в систему, и у вас есть собственный собственный профиль.