我想知道如何检查存储在wordpress上的sql数据库中的用户密码。我一整天都在寻找这个,但解决方案似乎很简单,但是我无法让它发挥作用。
运行此代码会返回一个空白页面,因此我不知道发生了什么。 如果输入错误的用户名/密码,则不会显示错误消息。
似乎我必须使用wp_signon(),如下所述:
但是,当我在我的bluehost服务器上的php文件上运行此代码时,与托管wordpress网站的那个文件相同,它不起作用。
<?php
custom_login("joe","joepass");
function custom_login($username, $password) {
$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $password;
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) )
echo $user->get_error_message();
}
// run it before the headers and cookies are sent
add_action( 'after_setup_theme', 'custom_login' );
?>
我在这里缺少什么?它可能是非常基本的东西,但我对于该做什么完全不了解。
我的服务器托管两个网站。所以我不需要指定它需要使用哪个数据库和表来验证用户/通行证?
如果我在&$ 39; $ user = wp_signon($ creds,false);&#39;之后放了一个echo语句,它就不会被打印出来。这是为什么?如果不打印语句,wp_signon会返回$ user?
很抱歉,如果答案很简单,如果之前有人问过,请指点我一个解决方案。
感谢。
答案 0 :(得分:1)
您获取空白页面的原因是因为您在PHP中触发致命错误。
您创建了一个名为custom_login()
的函数,它有两个必需参数,用户名和密码。然后将该函数挂钩到after_setup_theme
操作中。
add_action( 'after_setup_theme', 'custom_login' );
这个钩子不会传递给自定义登录的任何参数,因为它需要两个这就是你问题的根源。