我试图创建一个自定义用户页面自定义登录页面,但我不能让WordPress的停止重定向词登录WP-login.php中。
安装非常简单,我添加一条规则看起来像这样。 account/login/?$
是收益率index.php?account=login
。 我还设置我重写标签为自定义查询变种。 我有一对夫妇的其他规则的设置和他们都正常工作。
当我正确使用猴人的重写分析点应有尽有,但在前端任何时候我进入login
到URL重定向我WP-login.php中。 不要紧,什么段它在进入。 所以/login
, /account/login
, /dogs/bulldogs/login
....所有重定向到WP-的login.php
据我可以告诉有没有包含任何其他重写规则login
。 所以我不知所措。
作为最后一块信息,我在WP 3.6工作
任何建议或想法,将不胜感激。
我面对完全一样的问题。 谷歌是不是非常有帮助,所以我有必要在挖。:)
对上的顶部WP-包括/模板loader.php文件,你会发现这个代码小片段:
if ( defined('WP_USE_THEMES') && WP_USE_THEMES )
do_action('template_redirect');
如果你检查什么功能迷上了当时那个动作,你会发现到wp_redirect_admin_locations功能(包括钩子和功能都宣布对/wp-includes/canonical.php文件-线526)的参考。
内wp_redirect_admin_locations功能,你会发现这一点:
$logins = array(
home_url( 'wp-login.php', 'relative' ),
home_url( 'login', 'relative' ),
site_url( 'login', 'relative' ),
);
if ( in_array( untrailingslashit( $_SERVER['REQUEST_URI'] ), $logins ) ) {
wp_redirect( site_url( 'wp-login.php', 'login' ) );
exit;
}
对这个问题的简单的解决方案,将是你的钩到* wp_redirect *过滤器的功能。 像这样的东西(你的functions.php中):
add_filter('wp_redirect', 'yourprefix_filter_login_redirect', 10, 2);
function yourprefix_filter_login_redirect($location, $status)
{
$uri = trim($_SERVER['REQUEST_URI'], '/');
if ($uri === 'login') {
return false;
}
return $location;
}
所以...的* wp_redirect_admin_locations *试图瓶坯重定向后终止脚本,所以上述解决方案将无法工作。
我看到现在唯一的其他的解决办法是绕过功能一起哪一种吮吸。 所有这些函数中定义的其他重定向,将丢失所有一起...
不管怎么说,我已经结束了使用:
add_action(
'init',
function() {
remove_action('template_redirect', 'wp_redirect_admin_locations', 1000);
}
);
在Diogos伟大的回答之上建立,你甚至可以禁用不失其他的重定向/登录重定向。 我刚刚张贴在WPSE此解决方案: 禁用“/登录”重定向