Wordpress:为什么多次调用init钩子?

时间:2010-12-07 01:25:39

标签: wordpress

我真的在这个问题上失败了。我刚刚创建了一个插件,并在插件中记录操作(因为我看不到处理的输出),我向init添加了一个钩子,如下所示:

add_action('init', 'test_hook');

function test_hook()
{

   global $wpdb;
   $message = "Some informational message here";
   $wpdb->insert("pq_logs", array("message"=>$message), array("%s"));

}

让我提交的是,不是每页加载一行条目,而是从相同日志的1到8行条目中获取不同的时间戳。输入的条目数不一致,似乎完全随机(有时我认为这取决于当前的天气条件或股票交易所指数)。

我做了标准检查,关闭了所有其他插件,但无济于事。我搜索了do_action('init')的任何内容的代码,但我只是指出了wp-settings.php的一个电话。

你还遇到过吗?你做了什么?

2 个答案:

答案 0 :(得分:19)

您在网站(图像,脚本,样式表等)中有404个链接吗?如果是这样,默认的404页面将在默认网站主题中显示“您正在寻找不在这里的内容”页面,因此您最终将获得初始页面请求调用一次的init挂钩,并且每个页面请求一次坏的链接。

使用Firebug进行Doublecheck并查看是否有任何错误调用。

答案 1 :(得分:1)

在Rob Williams回答之后我读过这篇文章:

http://www.tastyplacement.com/how-to-remove-link-relprev-and-link-relnext-from-wordpress-head

并意识到带有rel =“next”和rel =“prev”的链接标签在我的WordPress 3.5.1网站上第二次运行我的init挂钩。可以删除这些标记,将其添加到主题functions.php文件中:

remove_filter('wp_head','adjacent_posts_rel_link_wp_head',10);