WP_GET_CURRENT_USER在登录页面上无法正常工作

时间:2019-03-07 作者:ekd

Desired Outcome

我正在开发一个插件,如果用户已经登录,应该将其从登录页面重定向出去。

所以如果有人举个例子。com/wp登录。php,并且他们已经登录,重定向应该会启动。

Current Progress

我正在使用login_init 钩子以确定我们在登录页面中,并且wp_get_current_user() 获取用户。

function redirect_logged_in_users() {
   if (is_user_logged_in()) {
     wp_redirect($destination);
  }
}

add_action(\'login_init\', \'redirect_logged_in_users\');

The Problem

这在使用其他钩子的任何其他页面中都很有效,例如init, 但每当我用这个login_init 这个wp_get_current_user() 返回一个空用户,就像没有人登录一样。

我知道有一个用户登录了。

Additional Context

我不是WordPress开发人员,我几乎可以肯定我是在以非WordPress的方式做一些事情。乐意采取其他有助于实现目标的方法。

1 个回复
SO网友:Debbie Kurth

你有鸡和蛋的问题。在用户实际登录之前调用login\\u init。它只是表明登录页面已经显示。(https://developer.wordpress.org/reference/hooks/login_init/)

钩子应该是:wp\\u login。这将在用户成功登录后激发
https://developer.wordpress.org/reference/hooks/wp_login/

add_action(\'wp_login\', \'redirect_logged_in_users\');

相关推荐

如何在自定义的PHP文件中使用GET_BLOGINO(‘ADMIN_Email’)?

我如何使用get_bloginfo(\'admin_email\') 在位于父主题根目录中的自定义PHP文件中?我已经分别构建了一个自定义表单和一个PHP邮件脚本,但现在我想用密件抄送将表单数据发送到WP Admin电子邮件地址。 $headers = \"MIME-Version: 1.0\" . \"\\r\\n\"; $headers .= \"Content-type:text/html;charset=UTF-8\" . \"\\r\\n\"; $heade