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

时间:2010-10-16 06:56:24

标签: php wordpress plugins 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
?>

致命错误:在第30行的C:\ xampp \ htdocs \ shizin \ twitter.php中调用未定义的函数add_action()

6 个答案:

答案 0 :(得分:7)

只需在其他功能之前添加行require(dirname(__FILE__) . '/wp-load.php');即可。这应该可以解决你的问题。

记住dirname(__FILE__)意味着指向root wordpress目录,例如www.yourdomain.com/wordpress/

答案 1 :(得分:4)

如消息所示,您尚未定义函数add_action(),但您尝试使用它。

首先创建它。


我搜索你以前的问题,似乎你复制了wordpress插件的代码。在这种情况下,不要直接调用页面,使用wordpress插件系统。

答案 2 :(得分:1)

如果add_action未定义,你试图在主题的核心文件之外运行它 - 基本上,它运行时没有任何WordPress应该在你的自定义函数之前做的处理。这应该在你的主题的functions.php文件中,或者在插件中,正如科林指出的那样。

C:\xampp\htdocs\shizin\twitter.php行确实暗示这是错误的。

答案 3 :(得分:0)

将您的呼叫转移到当前活动主题中的add_action() functions.php脚本。(不在主要的functions.php中)。

答案 4 :(得分:0)

我遇到了同样的问题。我创建了一个WooCommerce插件here,并且遇到了这个问题。

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

请确保已将其加载到functions.php中或在WP初始化/加载之后。

答案 5 :(得分:0)

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