在100k帖子之后,带有wp_insert_posts的Wordpress中的批量帖子开始变得很慢

时间:2018-03-19 16:47:15

标签: wordpress performance

我使用wp_insert_post()函数在我的网站上批量发布新帖子。我已经在一周前开始了,一切都很快,每分钟平均有大约80个新帖子。日复一日,随着发布帖子数量的增加,函数每分钟发布的帖子的平均值下降。

现在我发布了超过10万篇帖子,平均每分钟发布了5篇新帖子。

我使用的功能非常简单:

   // Gather post data.
   $new_video = array(
       'post_type'     => 'video',
       'post_title'    => $title,
       'post_status'   => $status,
       'post_author'   => $author,
       'post_date'     => date("Y-m-d H:i:s"),  
       'post_date_gmt' => date("Y-m-d H:i:s"),
       'post_category' => explode(',', $category),
       'post_name'     => $rand_video_id
   );

   // Insert the video into the database.
   wp_insert_post( $new_video );

在插入后,我还设置了一些术语和一些帖子。通过在网上阅读,我找到了不同的解决方案,以提高wp_insert_post功能的速度,首先是这一个:

wp_defer_term_counting(false);

当然,这是一个很好的解决方案,可以不花时间来计算条款,但不幸的是我没有看到任何改进。

我还尝试清除该功能,并删除所有插入标签,自定义分类和元数据,但它没有速度效果。

有人有什么建议吗?谢谢

****问题已修复****

通过停用用于生成.xml站点地图的WP插件解决了这个问题 - 现在一切都恢复得非常快,每分钟新帖子的平均值又回到80.

1 个答案:

答案 0 :(得分:0)

你需要像这样添加true,加上你也可以关闭评论计数,这也可以帮助加快速度。

wp_defer_term_counting( true );
wp_defer_comment_counting( true )

然后在完成输入后将它们设置为false。

wp_defer_term_counting( false );
wp_defer_comment_counting( false );

这些也需要高于具有wp_insert_post()功能的代码,否则无法使用。

将这些设置为true,它应该有所帮助,有100K的帖子虽然有很多后台进程和数据库工作自然会减慢更新。接下来的事情是查看数据库中WP表的索引。正如您所拥有的那样优化它们非常重要。