我在第一个插件中覆盖is_user_logged_in()
可插入功能时遇到问题。
pluggable.php中的这个函数包含在if ( !function_exists('...') )
中,所以我希望我的函数版本可以毫无问题地执行,但似乎并非如此。
new session_auth();
class session_auth{
public $sessionUSERNAME; // php session variable for username
public function __construct() {
$this->sessionUSERNAME = $_SESSION['simple_auth']['username']; // php session variable for username
add_filter('is_user_logged_in', array($this, 'is_user_logged_in'), 20);
add_filter('wp_title', array($this, 'wp_title'), 20) ;
}
function is_user_logged_in() {
return true;
}
public function wp_title($title)
{
return $title .'if this is displayed, the plugin is activated';
}
}
我的wp_title
版本已成功执行,而不是WordPress的版本,但不是我的is_user_logged_in
版本。我没有收到任何错误。
我在这个剧本中做错了什么?
答案 0 :(得分:1)
filter
没有is_user_logged_in
,可以从Wordpress pluggable.php代码中看到:
function is_user_logged_in() {
$user = wp_get_current_user();
return $user->exists();
}
您需要在文件中创建is_user_logged_in()
函数,而不是将其放在类中。所以,只需将某个地方放在你的插件中(再次,不在课堂内):
function is_user_logged_in() {
return true;
}