【问题标题】:media_sideload_image gets fatal error Call to undefined function wp_get_current_user() in C:\xampp\htdocs\project-name\wp-includes\capabilities.phpmedia_sideload_image 出现致命错误调用 C:\xampp\htdocs\project-name\wp-includes\capabilities.php 中的未定义函数 wp_get_current_user()
【发布时间】:2026-01-23 04:30:02
【问题描述】:

第一次尝试从插件中实现media_sideload_image()并得到错误:

致命错误:在第 1441 行调用 C:\xampp\htdocs\project-name\wp-includes\capabilities.php 中未定义的函数 wp_get_current_user()

这是我正在使用的 PHP:

require_once( ABSPATH . '/wp-admin/includes\plugin.php');
require_once( ABSPATH . '/wp-admin/includes\media.php');
require_once( ABSPATH . '/wp-admin/includes\file.php');
require_once( ABSPATH . '/wp-admin/includes\image.php');

$url = "http://wordpress.org/about/images/logos/wordpress-logo-stacked-rgb.png";
$post_id = 1;
$desc = "The WordPress Logo";

$image = media_sideload_image($url, $post_id, $desc);

正如您所看到的,这是来自 Wordpress Codex 的代码,在我遇到其他错误后添加了一些来自论坛的代码。 然而,没有运气。

很明显,codex 代码有问题,或者可能不打算在插件中使用(?)

我最终要做的是获取一张图片并将其添加到媒体库中,然后直接添加到正在编辑的帖子中。 我会很感激我能得到的任何帮助。 谢谢

【问题讨论】:

  • 在您的 reqire_once() 调用中,您的斜线是错误的。 quayph 下面的解决方案工作正常..

标签: php wordpress


【解决方案1】:

如果你在wp-admin区域之外,需要添加

require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');

https://codex.wordpress.org/Function_Reference/media_sideload_image

【讨论】:

    【解决方案2】:

    如果有帮助,jsut也有同样的问题,通过添加这一行来解决:

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

    【讨论】:

      最近更新 更多