立即注册 找回密码

QQ登录

只需一步,快速开始

查看: 7026|回复: 0

[Wordpress 已解决] 百度WordPress结构化数据插件会延长文章发布时间

[复制链接]

135

主题

17

回帖

882

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
882
发表于 2015-2-7 10:24:10 | 显示全部楼层 |阅读模式
道勤网-数据www.daoqin.net

亲注册登录道勤网-可以查看更多帖子内容哦!(包涵精彩图片、文字详情等)请您及时注册登录-www.daoqin.net

您需要 登录 才可以下载或查看,没有账号?立即注册

x

之前百度推出了一款wordpress结构化数据插件,经使用感觉还不错。只是最近发现一个问题,在WordPress后台发布新文章时,点击发布后,要等很久页面才能提交成功,而且经常造成主机资源超限,出现500错误。

经排查,露兜发现此问题是由WordPress结构化数据插件造成的,它的publish_post执行函数耗时15秒!停用该插件后,文章发布就变得很快了。当然也有可能是这个插件跟我网站的某些代码不兼容造成。如果你的WordPress后台发布文章也要等很长时间,并且安装了这个插件,不妨用下面的方法排查一下,确定这段代码的执行时间是否过长:

用文本编辑器打开该插件目录下的main.php,即baidusubmit/main.php
查找:publishPost
可找到以下代码:

  1. static function publishPost($postid)
  2. {
  3.     require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . './inc/sitemap.php';
  4.     $schema = BaidusubmitSitemap::genSchemaByPostId($postid, $xpost);
  5.     if ('publish' != $xpost->post_status || '' != $xpost->post_password) {
  6.         self::deletePost($postid);z
  7.         return;
  8.     }
  9.     $xml = $schema->toXml();
  10.     $content = BaidusubmitSitemap::genPostXml($xml);
  11.     //file_put_contents('/home/work/baidusubmit.log',  date('[Y-m-d H:i:s]')."\n".$content, FILE_APPEND);
  12.     $r = BaidusubmitSitemap::sendXml($content, 1);
  13.     //file_put_contents('/home/work/baidusubmit.log', date('[Y-m-d H:i:s]')."\n".$r, FILE_APPEND);
  14. }
复制代码

改成以下代码,以便计算程序运行时间:

  1. static function publishPost($postid)
  2. {
  3.     // 标记程序执行开始时间
  4.     list($usec, $sec) = explode(" ",microtime());
  5.     $time_start =  ((float)$usec + (float)$sec);

  6.     require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . './inc/sitemap.php';
  7.     $schema = BaidusubmitSitemap::genSchemaByPostId($postid, $xpost);
  8.     if ('publish' != $xpost->post_status || '' != $xpost->post_password) {
  9.         self::deletePost($postid);z
  10.         return;
  11.     }
  12.     $xml = $schema->toXml();
  13.     $content = BaidusubmitSitemap::genPostXml($xml);
  14.     //file_put_contents('/home/work/baidusubmit.log',  date('[Y-m-d H:i:s]')."\n".$content, FILE_APPEND);
  15.     $r = BaidusubmitSitemap::sendXml($content, 1);
  16.     //file_put_contents('/home/work/baidusubmit.log', date('[Y-m-d H:i:s]')."\n".$r, FILE_APPEND);

  17.     // 标记程序执行结束时间
  18.     list($usec, $sec) = explode(" ",microtime());
  19.     $time_end =  ((float)$usec + (float)$sec);

  20.     // 计算程序执行总用时
  21.     $time = $time_end - $time_start;

  22.     // 发送邮件,将ludou#ludou.org改成你的邮件地址
  23.     wp_mail('ludou#ludou.org', '程序用时', '总时长(单位:秒):'.$time);
  24. }
复制代码

将代码中的 ludou#ludou.org 改成你的邮箱地址,然后上传到你的网站服务器,并在WordPress后台发布或更新一篇文章,这时你的邮箱中就会收到一封标题为 程序用时 的邮件,邮件内容中就会看到程序运行时长。我这里测试的运行时间是15秒,这样的时间实在没法忍受,不过看在它还有点用处的份上,还是忍忍吧。

最后,测试完毕,记得将代码还原到修改之前。

PS:小清新图片建议,关闭实时推送可以缓解这个问题。


道勤主机提供365天*24小时全年全天无休、实时在线、零等待的售后技术支持。竭力为您免费处理您在使用道勤主机过程中所遇到的一切问题! 如果您是道勤主机用户,那么您可以通过QQ【792472177】、售后QQ【59133755】、旺旺【诠释意念】、微信:q792472177免费电话、后台提交工单这些方式联系道勤主机客服! 如果您不是我们的客户也没问题,点击页面最右边的企业QQ在线咨询图标联系我们并购买后,我们为您免费进行无缝搬家服务,让您享受网站零访问延迟的迁移到道勤主机的服务!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

道勤网- 推荐内容!上一条 /2 下一条

!jz_fbzt! !jz_sgzt! !jz_xgzt! 快速回复 !jz_fhlb! !jz_lxwm! !jz_gfqqq!

关于我们|手机版|小黑屋|地图|【道勤网】-www.daoqin.net 软件视频自学教程|免费教程|自学电脑|3D教程|平面教程|影视动画教程|办公教程|机械设计教程|网站设计教程【道勤网】 ( 皖ICP备15000319号-1 )

GMT+8, 2024-11-14 12:19

Powered by DaoQin! X3.4 © 2016-2063 Dao Qin & 道勤科技

快速回复 返回顶部 返回列表