2014-09-29 83 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