2014-09-29 81 views
0

感謝您的幫助。如何在WordPress發佈後發佈事件?

我需要知道如何掛接wp_insert_post(或其他相似和更好?),而不需要多次觸發。什麼是在WordPress中做到這一點的正確方法?

例如:

在Plugin.php

add_filter('wp_insert_post', 'add_data')); 
... 
function add_data() 
{ 
    // This line is outputted twice 
    terseErrorLog("This code was executed."); 
} 
+0

這是正確的做法,所以必須有別的東西對你的代碼,觸發真實節省2 。 – manishie 2014-09-29 03:47:08

+0

我不認爲這是正確的。從谷歌搜索和查看數據庫中看來,「修訂」與「發佈」版本一起被保存。 wp_insert_post似乎爲每個事件觸發一次,並且我不知道如何勾選點擊「發佈」 - 任何想法? – Puck 2014-09-29 17:24:09

回答

1

試試這個:

function add_data() { 
    global $post; 
    if ($post - > post_status == "publish") { 
    terseErrorLog("This code was executed."); 
    } 
} 
add_action('save_post', 'add_data'); 
+0

http://codex.wordpress.org/Plugin_API/Action_Reference/pre_post_update表示該代碼永遠不會觸發創建新帖子,而且我需要上述代碼才能在新帖子創建和帖子更新上同時工作。試着爲wp_insert_post掛鉤的代碼和「發佈」檢查在這裏似乎是無效的(我們從來沒有成功)。 – Puck 2014-09-30 23:51:11

+0

嘗試save_post操作 – manishie 2014-09-30 23:54:22

+0

我已經添加了一個代碼塊來檢查是否定義了DOING_AUTOSAVE並輸出到我的記錄器是否是。它沒有被定義,但是代碼仍然被輸出兩次(每次創建一個新帖子時都會有兩個「DOING_AUTOSAVE未定義」)。 – Puck 2014-09-30 23:59:06