如何在"之后添加动作来执行"帖子之前没有保存过

时间:2017-03-02 20:00:37

标签: wordpress action add

我有一个插件可以复制"事件" - 自定义帖子类型 - 从父站点到子站点。复制代码有效但看起来好像是"添加动作"在wordpress保存父站点上的数据之前调用。请参见此处的操作:

add_action(' publish_event',' copy_event_to_another_site',10,1);

如何获得"添加操作"在wordpress在被调用之前保存了父网站上的所有相关数据之后执行 - 所以我可以从父网站复制数据。

更新。 "事件"的实际帖子类型已保存,但所有其他相关数据均未保存。所以我想现在的问题是如何在保存所有数据后执行该过程。

UPDATE2。

我发现你可以使用延迟功能

add_action('publish_event', 'b4w_update_after_one_minute', 10, 1 );

add_action('b4w_delay_copy', 'copy_to_child_site', 10, 1 );

function b4w_update_after_one_minute() {
  wp_schedule_single_event( time() + 60, 'b4w_delay_copy');
}


function copy_to_child_site($parent_id){
  // copy code goes here
}

问题是该功能" copy_to_child_site"需要传递给它的父帖子ID。使用延迟我不知道如何传递该参数。

2 个答案:

答案 0 :(得分:0)

您可以使用post meta来保存额外数据并使用2个钩子(updated_post_meta,added_post_meta)

updated_post_meta,在数据库中更新数据后调用的操作。

答案 1 :(得分:0)

也许你可以通过你的single_event传递它:

 function b4w_update_after_one_minute() {
     global $post;
     $id = $post->ID;
     wp_schedule_single_event( time()+100 , 'b4w_delay_copy', array($id));
    }