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

2021/01/30 04:41 · php ·  · 0评论

我正在尝试使用func wp_get_current_user()获取插件中的当前用户信息。但是越来越
Call to undefined function wp_get_current_user()

显然是因为/wp-includes/pluggable包含该函数的文件直到插件被加载后才被加载。

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

显然,这是因为包含该函数的文件/ wp-includes / pluggable直到加载插件后才被加载。

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

例:

add_action('init','do_stuff');
function do_stuff(){
  $current_user = wp_get_current_user();
  // ...
}

你可以用这个

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

这应该可以解决您的问题:)

安装wp 3.8之后,我在用ajax获得的页面上也遇到了同样的问题。我用以下代码修复了它:

if(!function_exists('wp_delete_user')) {
    include(ABSPATH . "wp-admin/includes/user.php.");
}

显然,该功能已从pluggable.php移至user.php。在添加wp-blog-header.php之后,我仍然不明白为什么它不起作用。

尝试也添加

require_once('../../../wp-load.php');

随着

require_once(ABSPATH.'wp-includes/pluggable.php');

我的问题用此代码解决了

include_once(ABSPATH . 'wp-includes/pluggable.php');

更新WP后,我得到了相同的错误消息。对我有用的解决方法是快速简便的:

在wp-includes目录(WP 3.8.x)中找到capability.php。在php标签之后的顶部添加以下内容:

require_once('pluggable.php');

不是wp-includes

include_once(ABSPATH . "wp-admin/includes/plugin.php");

听起来可能很疯狂,但由于我有一个名为menu.php的文件,所以在我的应用程序中出现了问题,我在其中有一个创建Wordpress菜单的类。

从字面上看,只需将FILE的名称从menu.php更改nav-menu.php,即可解决此问题。我重复了3次此问题,因为我不敢相信FILE的名称可能是问题所在。

以防万一有人想要现在该文件中的内容,这里是:

class OwNavMenu extends OwCpnt 
{
    function __construct( $location, $args ) {
        $show = $args['show'];
        $span = $args['span'];   

        if ( $show ) {
            $this->menu( $location, $span );
        }     
    }

    function menu( $location, $span ) {
        if ( $location ) {
            echo '<div id="ow-' . $location . '" class="ow-nav ow-' . $location . '">';
                wp_nav_menu(
                    array(
                        'theme_location'  => $location,
                        'link_before'     => ( $span ) ? '<span>'  : '',
                        'link_after'      => ( $span ) ? '</span>' : ''
                    )
                );
            echo '</div>';
        }        
    }
}

尝试在插件PHP文件中使用它。

if ( !function_exists('wp_get_current_user') ) {
    include(ABSPATH . "wp-includes/pluggable.php"); 
}

$current_user = wp_get_current_user();
$user=esc_html( $current_user->ID );

快速修复include_once(ABSPATH . 'wp-includes/pluggable.php');在您的capabilities.php中添加此行

本文地址:http://php.askforanswer.com/wordpresschajian-diaoyongweidingyihanshuwp_get_current_user.html
文章标签: ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!