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