Wordpress login_redirect 过滤器被忽略并且没有效果
Posted
技术标签:
【中文标题】Wordpress login_redirect 过滤器被忽略并且没有效果【英文标题】:Wordpress login_redirect filter gets ignored and has no effect 【发布时间】:2012-09-21 07:23:51 【问题描述】:我试图在用户登录时将具有特定元标记的用户发送到特殊页面。我知道 $current_user 全局可能不可用,但过滤器将用户作为参数传递,所以我想什么我正在做的应该工作:
//special login redirect for employers
function employer_login_redirect($redirect_url, $request_url, $user)
$user;
$is_employer = get_user_meta($user->ID, 'is_employer', true);
var_dump($is_employer);
if ($is_employer)
return get_bloginfo('url') . "/candidate-ranks/";
else
return $redirect_url;
add_filter( 'login_redirect', 'employer_login_redirect', 90, 3 ); //late priority just in case other plugins are interfering
我错过了什么吗?我什至无法显示 var_dumpt,这让我觉得回调函数甚至没有被触发。
【问题讨论】:
【参考方案1】:看起来不错,但我认为您应该使用site_url()
,因为get_bloginfo('url')
返回 home_url 而不是 site_url。这可能是个问题。
function employer_login_redirect($redirect_url, $request_url, $user)
$is_employer = get_user_meta($user->ID, 'is_employer', true);
if ($is_employer)
return site_url() . "/candidate-ranks/";
else
return $redirect_url;
add_filter( 'login_redirect', 'employer_login_redirect', 90, 3 );
【讨论】:
我一定会试一试的。但我担心过滤器根本不起作用,因为 var_dump() 没有出现。无论重定向 URL 是什么,我都应该期望看到吗? 登录后你会看到什么,并通过在返回之前将var_dump($is_employer);exit
放在该函数中来确保它是否被调用。
我添加了 ...exit;什么也没有发生。像往常一样,我只是得到主页。过滤器一定不起作用,但我不明白为什么。
尝试将priority
更改为10
看看会发生什么?
Also check the manual.以上是关于Wordpress login_redirect 过滤器被忽略并且没有效果的主要内容,如果未能解决你的问题,请参考以下文章