隐藏 wp-login.php 作为登录并将其重定向到自定义登录页面

Hide wp-login.php as log-in and redirect it to a custom login page

我想在我的网站上隐藏 wp-login.php 所以我安装了插件重命名 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 基础文件的情况下做到这一点?

您可以使用名为All In One WP Security & Firewall.

的插件通过自定义管理员登录页面访问wordpress管理员的结果。

多合一 WordPress 安全插件将使您的网站安全性提升到一个全新的水平。此插件由专家设计和编写,易于使用,understand.It 通过检查漏洞以及实施和执行最新推荐的 WordPress 安全实践和技术来降低安全风险。

您的要求:

此插件可以隐藏管理员登录页面。重命名您的 WordPress 登录页面 URL,这样机器人和黑客就无法访问您的真实 WordPress 登录页面 URL。此功能允许您将默认登录页面 (wp-login.php) 更改为您配置的内容。

更多功能,请参考plugin codex

你可以参考这个插件https://wordpress.org/plugins/custom-login-url/

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

试试这个

add_action('init','custom_login');
function custom_login(){
 global $pagenow;
 if( 'wp-login.php' == $pagenow ) {
  wp_redirect('http://localhost/wordpresstest/blog/');
  exit();
 }
}

试试这个

// 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();
    }
}