gpt4 book ai didi

php - 如何在外部脚本中验证 wordpress 用户

转载 作者:行者123 更新时间:2023-12-02 01:05:44 24 4
gpt4 key购买 nike

我正在尝试检查外部 api 文件中的用户身份验证。我包含 wp-load.php 文件,但收到以下错误:


Fatal error: Call to a member function add_query_var() on a non-object in /home/USERNAME/public_html/DOMAIN/wp-includes/rewrite.php on line 1834

这是我的代码:

function authentication ($user, $pass){

//Include wordpress files
require_once('/home/USERNAME/public_html/DOMAIN/wp-load.php');


if(empty($user) || empty($pass)){

return false;

} else {
$auth = mysql_query("SELECT ID, user_login, user_pass FROM PREFIX_users WHERE user_login = '".$user."'");
$row = mysql_fetch_array($auth);
$uid = $row['ID'];


$status = false;

$auth = wp_authenticate($uid, $pass );

if( is_wp_error( $auth ) ) {
$status = false;
} else {
$status = true;
}
return $status;
}

我从中删除了用户名、域和前缀。

最佳答案

对于发现此问题的任何其他人,我只需添加一些全局变量并将字符串用户名传递给 wp_authenticate 而不是用户 ID,最后包括 wp-blog-header.php 而不是 wp-load.php。这是我的最终代码:

function authentication ($user, $pass){
global $wp, $wp_rewrite, $wp_the_query, $wp_query;

if(empty($user) || empty($pass)){
return false;
} else {
require_once('/home/USERNAME/public_html/DOMAIN/wp-blog-header.php');
$status = false;
$auth = wp_authenticate($user, $pass );
if( is_wp_error($auth) ) {
$status = false;
} else {
$status = true;
}
return $status;
}
}

关于php - 如何在外部脚本中验证 wordpress 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22748947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com