致命错误:调用未定义的函数 add_action()

3
我得到了一些用于 Twitter 更新的代码 -
function twitit() {
global $wp_query;
$thePostName = $wp_query->post->post_name;
echo '<div id="twitit"><a href="http://twitter.com/home?status=Currently reading '.$thePostName.' : '.get_permalink($post->ID).'" title="Click to send this page to Twitter!" target="_blank">Share on Twitter</a></div>';
}

function widget_twitit($args) {
extract($args);
echo $before_widget;
echo $before_title;
echo $after_title;
twitit();
echo $after_widget;
}

function twitit_init() {
register_sidebar_widget(__('Twit It'), 'widget_twitit');
}

add_action("plugins_loaded", "twitit_init"); //line 30
?>

严重错误:在C:\xampp\htdocs\shizin\twitter.php的第30行中调用未定义的函数add_action()。
6个回答

8

在其他函数之前添加require(dirname(__FILE__) . '/wp-load.php');这行代码。这应该可以解决你的问题。

记住,dirname(__FILE__)指的是指向根WordPress目录,像www.yourdomain.com/wordpress/这样的东西。


2
正如信息所述,您还没有定义函数add_action(),但是您正在尝试使用它。
请先创建它。
我查看了您之前的问题,似乎您复制了一个WordPress插件的代码。在这种情况下,请不要直接调用页面,而是使用WordPress插件系统。

1
如果出现add_action未定义的情况,那么你正在尝试在主题的核心文件之外运行它 - 基本上,在命中自定义函数之前,它是在没有任何处理WordPress应该执行的情况下运行的。这应该在你的主题的functions.php文件或插件内部,正如Colin所指出的那样。
C:\xampp\htdocs\shizin\twitter.php明确表明这个位置是错误的。

0

我遇到了同样的问题。我创建了一个WooCommerce插件这里,然后我遇到了这个问题。

我的发现是您在WP函数加载之前添加了add_action()

请确保它在functions.php中加载或在WP初始化/加载后加载。


0

将您的add_action()函数调用移动到当前活动主题内的functions.php脚本中(而不是主要的functions.php)。


0

这是一个核心功能,只有在通过WordPress激活并通过WordPress访问您的代码时才可用。如果您从浏览器或直接执行文件,则除非在文件顶部从WordPress根目录中要求wp-load.php,否则add_action不可用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接