wp_signon() 是 WordPress 中用于自定义用户登录的函数之一。它允许你在自定义代码中实现用户登录功能,而不是使用默认的 WordPress 登录表单。你可以使用这个函数来创建自定义登录表单、实现单点登录 (SSO)、或者在其他情况下以编程方式登录用户。
以下是使用 wp_signon() 函数的基本示例:
<?php
// 引入 WordPress 核心文件
require_once('wpload.php');
// 准备登录用户的信息
$user_data = array(
    'user_login'    => 'username', // 用户名或电子邮件地址
    'user_password' => 'password', // 用户密码
    'remember'      => true // 是否记住用户登录状态
);
// 使用 wp_signon() 函数登录用户
$user = wp_signon($user_data, false);
// 检查登录是否成功
if (is_wp_error($user)) {
    echo "登录失败:" . $user>get_error_message();
} else {
    echo "登录成功!";
}
?>
在这个示例中,我们首先包含了 WordPress 核心文件,然后准备了一个包含用户登录信息的关联数组。你需要替换 'username' 和 'password' 为实际的用户名和密码。'remember' 字段用于指定是否记住用户登录状态,你可以将其设置为 true 或 false,具体取决于你的需求。
然后,我们使用 wp_signon() 函数来尝试登录用户。如果登录失败,wp_signon() 会返回一个 WP_Error 对象,你可以使用 is_wp_error() 函数来检查是否发生了错误并输出错误消息。如果登录成功,wp_signon() 会返回一个 WP_User 对象,表示已登录的用户。
请注意,这个示例中的代码是在 WordPress 之外的环境中执行的,因此我们需要包含 WordPress 核心文件。如果你在 WordPress 主题或插件中使用这个函数,通常不需要包含核心文件,因为 WordPress 已经在加载主题或插件时包含了这些文件。
总之,wp_signon() 函数是一个强大的工具,可用于在 WordPress 中自定义用户登录功能。你可以根据自己的需求进行定制,以实现不同的登录场景。