Скрыть wp-login.php как логин и перенаправить его на пользовательскую страницу входа

Я пытаюсь скрыть wp-login.php на своем сайте, поэтому я установил плагин Rename wp-login.php, я переименовал его как логин. Теперь я хочу перенаправить его на свою пользовательскую страницу входа, чтобы форма входа в WordPress по умолчанию была полностью скрыта. Есть ли способ сделать это? Я уже пробовал плагин перенаправления и приведенный ниже код, однако он поддерживает только wp-login.php, а не мой новый URL-адрес для входа:

function redirect_login_page(){

// Store for checking if this page equals wp-login.php
$page_viewed = basename( $_SERVER['REQUEST_URI'] );

// permalink to the custom login page
$login_page  = get_permalink( '10' );

if( $page_viewed == "wp-login.php" ) {
    wp_redirect( $login_page );
    exit();
}
}

Есть ли способ сделать это без фактического изменения базовых файлов WordPress?


person aj noguerra    schedule 29.03.2016    source источник


Ответы (4)


вы можете сослаться на этот плагин https://wordpress.org/plugins/custom-login-url/< /а>

or

https://www.inkthemes.com/how-to-redirecting-wordpress-default-login-into-a-custom-login-page/

person Virendra Singh    schedule 29.03.2016

Попробуйте это

add_action('init','custom_login');
function custom_login(){
 global $pagenow;
 if( 'wp-login.php' == $pagenow ) {
  wp_redirect('http://localhost/wordpresstest/blog/');
  exit();
 }
}
person krunal sojitra    schedule 29.03.2016
comment
Вы также можете использовать относительный путь: wp_redirect('/login') в моем случае. - person Simon Berton; 20.06.2019
comment
Просто добавлю комментарий для помощи другим людям, которые так же новички, как и я, в Wordpress: я добавил код перенаправления в свой файл functions.php из wp-content/themes/‹ папка my-theme›. Если у кого-то есть другое предложение, пожалуйста, поделитесь. - person Victor; 13.12.2019

Попробуйте это

// Hook the appropriate WordPress action
add_action('init', 'prevent_wp_login');

function prevent_wp_login() {
    // WP tracks the current page - global the variable to access it
    global $pagenow;
    // Check if a $_GET['action'] is set, and if so, load it into $action variable
    $action = (isset($_GET['action'])) ? $_GET['action'] : '';
    // Check if we're on the login page, and ensure the action is not 'logout'
    if( $pagenow == 'wp-login.php' && ( ! $action || ( $action && ! in_array($action, array('logout', 'lostpassword', 'rp', 'resetpass'))))) {
        // Load the home page url
        $page = get_bloginfo('url');
        // Redirect to the home page
        wp_redirect($page);
        // Stop execution to prevent the page loading for any reason
        exit();
    }
}
person Maher Aldous    schedule 30.07.2019
comment
Ваш был единственным, который работал для меня, так как у него есть условия. - person BigEd; 15.02.2021
comment
Спасибо @BigEd. Я рад, что мой код помог вам :) - person Maher Aldous; 16.02.2021

Вы можете добиться результатов доступа к администратору WordPress через настраиваемую страницу входа администратора с помощью плагина с именем Все в одном WP Security & Firewall.

Плагин All In One WordPress Security поднимет безопасность вашего сайта на совершенно новый уровень. Этот плагин разработан и написан экспертами и прост в использовании и понимании. Он снижает риск безопасности, проверяя наличие уязвимостей, а также внедряя и применяя последние рекомендуемые методы и методы безопасности WordPress.

Ваше требование:

Этот плагин имеет возможность скрыть страницу входа администратора. Переименуйте URL-адрес страницы входа в WordPress, чтобы боты и хакеры не могли получить доступ к вашему реальному URL-адресу входа в WordPress. Эта функция позволяет вам изменить страницу входа по умолчанию (wp-login.php) на то, что вы настроите.

Чтобы узнать о дополнительных функциях, см. код подключаемого модуля.

person Mehul Gohil    schedule 29.03.2016