所以,我正在编写一个插件,用于解析json feed并从feed以编程方式生成页面。我想以编程方式创建一个用户,这将是页面的作者。问题是当我调用username_exists()
时,这个函数在内部调用get_user_by()
,最终是未定义的。我猜是有一些我需要挂钩的动作或者其他需要先做的事情,但是我很茫然。这是代码,错误apache正在抛弃:
/**
* A simple class for the cron user, ie the 'author' that will
* generate pages from the feed
*/
class PP_CronUser {
private static $cronUserName = 'Cron User';
private static $cronEmail = 'asdf';
private static $cronPW = 'asdf';
private static $ID = null;
public static function getUserID() {
if(!is_null(self::$ID)) return self::$ID;
if(!($id = username_exists(self::$cronUserName))) { //Here's the offending line
self::$ID = $id;
return $id;
}
self::$ID = wp_create_user(self::$cronUserName, self::$cronPW, self::$cronEmail);
return self::$ID;
}
}
错误:
致命错误:调用未定义的函数get_user_by() 第1198行
/home/who_cares/wordpress/wp-includes/user.php
因此定义了username_exists
,但这在内部调用了get_user_by
,但未定义。有什么想法吗?
答案 0 :(得分:2)
因此,您只需在插件文件的顶部调用wp-blog-header.php
,确保提及正确的路径
require('path/to/wp-blog-header.php');
注意此致命错误:调用未定义函数get_user_by()错误 当您调用任何未定义的函数或没有定义时发生 功能
答案 1 :(得分:2)
这意味着当您尝试调用该功能时,尚未加载WordPress核心。
一种解决方案是将其挂接:
add_action('init', function() {
$user_id = PP_CronUser::getUserID();
});
答案 2 :(得分:0)
我认为我需要勾结某些东西是正确的。我直接从插件调用这个方法。附加到admin_menu挂钩允许加载所有必需的库。