You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地WordPress环境plugin.php未自动加载引发get_plugin_data报错问题

解决WordPress中get_plugin_data()未定义的问题

核心原因

get_plugin_data()是WordPress后台专属函数,定义在wp-admin/includes/plugin.php中,只有在后台环境(如WP管理后台页面、后台触发的钩子)下,WordPress才会自动加载这个文件。如果你的代码在前台(主题前端、插件的前台逻辑)执行,本地环境就不会自动加载该文件;而服务器上如果代码是在后台路径触发的,就会正常加载。

解决方法

方法1:手动加载依赖文件

在调用函数前先检查并加载对应文件,确保兼容性:

if ( ! function_exists( 'get_plugin_data' ) ) {
    require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$version = get_plugin_data( __FILE__ )['Version'];

方法2:改用前台可用的函数读取版本

如果是在前台场景获取插件版本,推荐使用get_file_data()(该函数属于全局加载的wp-includes/plugin.php,前台后台都可用):

$plugin_version = get_file_data( __FILE__, [ 'Version' => 'Version' ] )['Version'];

本地与服务器差异的可能原因

  • 代码执行时机不同:服务器上的代码可能是在后台钩子(如admin_init)中触发,而本地是在前台(如init或主题模板)执行。
  • 本地调试插件影响:本地安装的调试类插件可能修改了WordPress的自动加载流程,导致后台文件未被加载。
  • 本地文件权限异常:虽然能访问后台,但wp-admin/includes/plugin.php文件权限设置不当,导致WordPress无法正常读取加载(这种情况通常伴随其他权限相关报错)。

内容的提问来源于stack exchange,提问作者mathewst

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 12:12:13