add_action('init') not work

时间:2019-08-01 作者:Kt H

我的代码是

add_action(\'init\', \'user_logged_in\');
function user_logged_in(){
    if( is_user_logged_in() && is_page(\'login\')){
    wp_redirect(home_url());
    exit;
    }
}
页面slug和名称为“login”

我不希望登录的成员访问登录页面。

但此代码在函数中不起作用。php。

你能告诉我出了什么问题吗?

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

我相信init 现在确定还为时过早is_page(). 试试后面的钩子,比如template_redirect.

function wpse_344136_user_logged_in(){
    if ( is_user_logged_in() && is_page( \'login\' ) ){
        wp_redirect( home_url() );
        exit;
    }
}
add_action( \'template_redirect\', \'wpse_344136_user_logged_in\' );

相关推荐

如何在重定向wp-login.php的同时仍允许注销和其他操作?

我的目标:重定向前往wp登录的访问者。php(或尝试注册的用户)访问主页。但仍允许wp登录。php在注销、丢失密码和重置密码等特定操作期间运行。我们在另一个问题中使用了代码,使我们几乎达到了目标。(How to use wp-login.php page only for logout?) 我们的修改添加了lostpassword和密码重置操作。这就是我们现在所拥有的:// Allow logout and lost password actions but redirect to the home pa