使用带有PUBLISH_POST挂接的wp_INSERT_POST时无法停止循环

时间:2017-03-09 作者:Syed Aqeel

我正在尝试创建一个插件,以便在中发布帖子时将帖子复制到另一个站点Worpdress Multisite environment 使用publish_postwp_insert_post 钩代码如下

function copy_post_to_blog($post_id) {

   $post = get_post($post_id, ARRAY_A); // get the original post

   $post[\'ID\'] = \'\'; // empty id field, to tell wordpress that this will be a new post

   switch_to_blog(main_blog_id()); // switch to target blog

   wp_insert_post($post); // insert the post

   restore_current_blog(); // return to original blog
}

add_action(\'publish_post\', \'copy_post_to_blog\');
代码正在运行并将帖子数据插入到博客but the problem 循环不会停止插入新帖子,直到我自己停止浏览器加载执行。因为它应该在第一次将post插入数据库后停止,但它并没有停止,而是开始无限次地插入post。请帮我解决这个问题。

我提前感谢你。

1 个回复
SO网友:johnh10

这个wp_insert_post() 函数触发publish_post 再次钩住导致无限循环。尝试此更改:

remove_action(\'publish_post\', \'copy_post_to_blog\');
wp_insert_post($post);
add_action(\'publish_post\', \'copy_post_to_blog\');

相关推荐

Remove node from multisites?

我有一个如下所示的功能,其目标是从“我的网站”下拉列表中删除新帖子并管理评论。如果我将{$node\\u id}替换为blogs id,这会很好地工作。但我希望这适用于“我的站点”列表中的所有多站点。这意味着我需要获得所有的博客id。这是我已经取得的成就,但它不起作用。add_action( \'admin_bar_menu\', \'remove_nodes_from_mysites\', 999 ); function remove_nodes_from_mysites( $wp_admin_