我正在WordPress中开发一个网站,并创建自己的主题。作为主题的一部分,我有一个自定义用户登录。当用户登录时,表单操作会返回到自身,在页面的标题中,我有一个简单的脚本来确定用户是否登录。
虽然此脚本按预期运行,但我遇到的问题是尝试使用wp_get_current_user 函数,则返回的名称在初始加载时为空(尽管在刷新页面或迁移到新页面时会显示)。
我已经搜索了几个用户问题和文章,其中许多提到挂接init函数(例如this one), 但他们都没有提供更多的细节。我试图向init函数添加一个过滤器,但没有成功。
这是我处理登录的代码,位于标题的开头。php文件:
<?php
if (is_user_logged_in()) {
$userLoggedIn = true;
if (isset($_POST[\'spLogout\'])) {
wp_logout();
$userLoggedIn = false;
}
} else {
$userLoggedIn = false;
if (isset($_POST[\'spLogin\'])) {
$ax_user = $_POST[\'email\'];
$ax_pswd = $_POST[\'pswd\'];
$creds = array(
\'user_login\' => $ax_user,
\'user_password\' => $ax_pswd,
\'remember\' => true
);
$user = wp_signon( $creds, false);
if (is_wp_error($user)) {
echo $user->get_error_message();
} else {
$userLoggedIn = true;
}
}
}
?>
在我的职能中。php文件,下面是钩子和函数:
add_filter(\'init\', \'ax_get_user_info\');
function avox_get_user_info() {
if (is_user_logged_in()) {
$currentUser = wp_get_current_user();
$fName = $currentUser->user_firstname;
}
return $fName;
}
我希望能够加载用户信息,而不需要刷新页面。也许我做错了,我才刚刚开始了解WordPress中的挂钩和加载顺序,但任何建议都非常感谢。