我试图在我的网站上隐藏 wp-login.php,所以我安装了插件重命名 wp-login.php,我将其重命名为登录。现在我想将其重定向到我的自定义登录页面,以便完全隐藏 WordPress 的默认登录表单。有办法做到这一点吗?我已经尝试过重定向插件和下面的代码,但它只支持 wp-login.php 而不是我的新登录网址:
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 基本文件的情况下做到这一点?
试试这个
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();
}
}
这适用于登录,但不适用于注销。 如果您要注销,它会将您重定向回登录页面,而不会实际注销您,因为注销的 URL 参数包括 /wp-login.php/
我发现这是一个更好的解决方案:
// Redirect from /wp-login.php/ to /login/ with ability to logout & redirect
add_action('init', 'custom_login');
function custom_login() {
global $pagenow;
if ($pagenow === 'wp-login.php' && empty($_REQUEST['action'])) {
wp_redirect('https://example.com/login/');
exit();
} elseif ($pagenow === 'wp-login.php?action=logout' && $_REQUEST['action'] === 'logout') {
wp_redirect('https://example.com/');
exit();
}
}
这个效果很好,很完美。
add_action('init', 'custom_login');
function custom_login(){
global $pagenow;
if ('wp-login.php' == $pagenow) {
wp_redirect('http://localhost/wordpresstest/blog/');
// No need for the exit() statement here
}
}
通过删除 exit() 语句,代码允许 wp-login.php 脚本在重定向后继续处理登录操作。 确保将 http://localhost/wordpresstest/blog/ 替换为您的自定义登录 ul
您可以使用名为 All In One WP Security & Firewall 的插件通过自定义管理员登录页面实现访问 WordPress 管理员的结果。
多合一 WordPress 安全插件将把您的网站安全提升到一个全新的水平。该插件由专家设计和编写,易于使用和理解。它通过检查漏洞以及实施和执行最新推荐的 WordPress 安全实践和技术来降低安全风险。
您的要求:
此插件能够隐藏管理员登录页面。重命名您的 WordPress 登录页面 URL,以便机器人和黑客无法访问您真实的 WordPress 登录 URL。此功能允许您将默认登录页面(wp-login.php)更改为您配置的内容。
更多功能请参考插件代码