wordpress wp_signon功能不起作用

Din*_*dra 6 wordpress

我正在使用wp_signon()函数登录用户.我这样做

$creds = array();

$creds['user_login'] = $username;

$creds['user_password'] = $password;

$creds['remember'] = true;

$user = wp_signon( $creds, false );

我想在登录后将用户发送到主页.

但我面临以下错误:

警告:无法修改标题信息 - 已在E:\ xampp\htdocs\wpmoodle\wp-中发送的标题(输出从E:\ xampp\htdocs\wpmoodle\wp-content\themes\twentyten\header.php:12开始)包括690行的\ pluggable.php.

提前致谢.

Mat*_*son 15

wp_signon() 需要在将任何实际页面发送到浏览器之前运行.

这是因为wp_signon()设置身份验证Cookie的部分原因.它通过输出"Set-Cookie:..."标题来实现这一点 - 如果你看看pluggable.php你的错误来自的第690行,你会看到该行设置了一个cookie.

因此,因为wp_signon()输出标头,您不能已经发送任何内容 - 因为标头必须始终在内容之前输出.

但是,错误表明您已经发送了一些输出 - 第12行header.php,可能是标准WordPress主题的第一个HTML.

这基本上表明您需要将您的wp_signon()呼叫转移到WordPress处理中的某个位置,因此它有机会在发送任何页面内容之前输出其标头.