0
试图找出我做错了什么。我试图在wordpress inits中插入一行到db中。do_action/add_action多次触发
所以,我做:
<?php
add_action('demo_init', 'demo_do', 1);
do_action('demo_init');
function demo_do(){
# print(did_action('demo_init')); # = 1 time called
### some more code ###
global $wpdb;
$wpdb->demo_log = $wpdb->prefix . 'demo_log';
$result = $wpdb->insert($wpdb->demo_log, array('date' => $event['date'], 'ip' => $event['ip']));
}
这给了我2 - 4条记录写在同一事件。 试图使用'init'/'send_headers'钩子或全局变量来计算函数的运行,但一切都适用,每次运行是唯一的...
有人可以帮我弄清楚这一点吗?
我已经在我的问题写道,我已经试过了,用'ADD_ACTION( 'send_headers', 'demo_do');'有相同的结果 – alechko 2013-03-19 11:24:17
当你加载你的网页时,你有任何404显示吗? Ajax请求也会触发'init'。看看这个问题。有同样的话题:http://stackoverflow.com/questions/4372596/wordpress-why-is-the-init-hook-invoked-multiple-times – RRikesh 2013-03-19 11:37:28
不,404的,我已经看到关于这个问题的其他问题,并尝试几乎所有我设法挖掘的东西...... – alechko 2013-03-19 11:40:25