wordpress插件 - >调用未定义的函数wp_get_current_user()

Dai*_*thí 27 php wordpress wordpress-plugin

我正在尝试使用func wp_get_current_user()在我的插件中获取当前用户信息.但我得到了 Call to undefined function wp_get_current_user()

显然这种情况正在发生,因为/wp-includes/pluggable包含该函数的文件在加载插件之后才会加载.

有关如何在我的插件中获取用户详细信息的任何想法?

Den*_*rdy 42

显然这种情况正在发生,因为包含该函数的文件/ wp-includes/pluggable直到加载插件后才会加载.

的确是.因此,请在函数中包装您正在执行的任何操作,并将其挂接到plugins_loaded或init挂钩上.(参见wp-settings.php文件)

例:

add_action('init','do_stuff');
function do_stuff(){
  $current_user = wp_get_current_user();
  // ...
}
Run Code Online (Sandbox Code Playgroud)

  • 像魅力一样工作.我正在处理一个在构造上加载用户详细信息的类.所以这是其他任何人的代码.我现在有:`add_action('plugins_loaded','construct_my_class'); function construct_my_class(){$ controller = new myClass(); } (3认同)

小智 17

你可以用这个,

<?php
if(!function_exists('wp_get_current_user')) {
    include(ABSPATH . "wp-includes/pluggable.php"); 
}
?>
Run Code Online (Sandbox Code Playgroud)

这应该解决你的问题:)

  • 这也将打破WP. (12认同)

小智 6

我的问题用这段代码解决了

include_once(ABSPATH . 'wp-includes/pluggable.php');
Run Code Online (Sandbox Code Playgroud)


Mau*_*Mau 5

也尝试添加

require_once('../../../wp-load.php');
Run Code Online (Sandbox Code Playgroud)

随着

require_once(ABSPATH.'wp-includes/pluggable.php');
Run Code Online (Sandbox Code Playgroud)