[英]Wordpress: Fatal error: Call to undefined function wp_get_current_user()
[英]wordpress plugin -> Call to undefined function wp_get_current_user()
我正在嘗試使用 func wp_get_current_user() 在我的插件中獲取當前用戶信息。 但是我正在Call to undefined function wp_get_current_user()
顯然,這是因為包含 function 的文件/wp-includes/pluggable
直到加載插件后才會加載。
有人對如何在我的插件中獲取用戶詳細信息有任何想法嗎?
顯然,這是因為包含 function 的文件 /wp-includes/pluggable 直到加載插件后才會加載。
它的確是。 因此,將您正在做的任何事情包裝在 function 中,並將其掛接到 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.");
}
顯然 function 已從 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) 中找到 capabilities.php。 在頂部,在打開 php 標簽之后添加以下內容:
require_once('pluggable.php');
wp-includes
但:include_once(ABSPATH . "wp-admin/includes/plugin.php");
盡管這聽起來很瘋狂,但我的應用程序中的問題正在發生,因為我有一個名為menu.php的文件,其中我有一個 class 來創建 Wordpress 菜單。
從字面上看,只需將文件的名稱從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 );
我也遇到過這種情況,只是因為我在打開網站之前通過 CLI 安裝 Wordpress 后沒有等待足夠的時間
快速修復include_once(ABSPATH. 'wp-includes/pluggable.php');
在你的能力上添加這一行。php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.