如何在登录时包含错误消息

时间:2013-02-18 作者:user27636

我是php新手,所以我需要这方面的帮助。请容忍我。

我想在wp\\U登录时包含一条错误消息。当访问者从“仅限用户/已登录”页面重定向时的php页面。下面是我用于“仅限用户”的页面模板的代码它检查用户是否登录。如果他没有,他将被重定向到登录页面。这就是我被困的地方。我试图将在谷歌上找到的一些代码整合在一起,但没有成功。是否有办法将错误消息从此处传递到登录页面?

if (!is_user_logged_in()) { auth_redirect(); }
add_action(\'login_head\',\'ref_access\');

function ref_access() {

global $error;

if( !empty($_GET[\'ref\']) && \'access\' == $_GET[\'ref\'] )
    $error  = \'Restricted area, please login to continue.\';}
如有任何代码建议,将不胜感激。

1 个回复
SO网友:Simon

这里的问题是,您将所有代码保存在模板文件中,这将阻止其中一些代码的执行。在未登录的情况下加载模板后auth_redirect() 将运行。此函数用于停止页面加载并重定向到登录页面,从而login_head 永远不会调用回调。尝试按如下方式划分代码:

your-template.php

if (!is_user_logged_in()) {
    auth_redirect();
}

functions.php

add_action(\'login_head\',\'ref_access\');
function ref_access() {

    global $error;

    if( !empty($_GET[\'ref\']) && \'access\' == $_GET[\'ref\'] )
        $error = \'Restricted area, please login to continue.\';
}
而这将使ref_access 执行时间login_head 这还意味着它将在每次显示登录页面时运行。要解释这一点,你必须找到一种方法让WordPress跟踪何时何地auth_redirect() 正在呼叫,并使ref_access() 检查一些推荐人。首先想到的是使用sessions 存储有关每个正在进行的重定向的信息并清除中的会话数据ref_access() 或根据需要在每个新页面上加载。

另一种选择是使用login_message 筛选以在登录页面上显示消息,但重定向/引用问题也适用于该页面。下面是一个示例:

add_filter(\'login_message\', \'wpse_87333_login_message\');
function wpse_87333_login_message($messages) {
    $messages = \'Restricted area, please login to continue.\';
}

结束

相关推荐

WP_REDIRECT在前端提交表单后“邮件头已发送”

我正在尝试设置一个前端帖子提交表单。我得到一个错误:Warning: Cannot modify header information - headers already sent by (output started at /home/sadlight/public_html/members/wp-content/themes/default-child/announcement-submit.php:1) in /home/sadlight/public_html/members/wp-include