百度WordPress结构化数据插件会延长文章发布时间
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-17 16:40:51 浏览: 评论:0
之前百度推出了一款WordPress结构化数据插件,经使用感觉还不错,只是最近发现一个问题,在WordPress后台发布新文章时,点击发布后,要等很久页面才能提交成功,而且经常造成主机资源超限,出现500错误.
经排查,露兜发现此问题是由WordPress结构化数据插件造成的,它的publish_post执行函数耗时15秒,停用该插件后,文章发布就变得很快了,当然也有可能是这个插件跟我网站的某些代码不兼容造成,如果你的WordPress后台发布文章也要等很长时间,并且安装了这个插件,不妨用下面的方法排查一下,确定这段代码的执行时间是否过长.
用文本编辑器打开该插件目录下的main.php,即baidusubmit/main.php,查找:publishPost,可找到以下代码:
- static function publishPost($postid)
- {
- require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . './inc/sitemap.php';
- $schema = BaidusubmitSitemap::genSchemaByPostId($postid, $xpost);
- if ('publish' != $xpost->post_status || '' != $xpost->post_password) {
- self::deletePost($postid);z
- return;
- }
- $xml = $schema->toXml();
- $content = BaidusubmitSitemap::genPostXml($xml);
- //file_put_contents('/home/work/baidusubmit.log', date('[Y-m-d H:i:s]')."n".$content, FILE_APPEND);
- $r = BaidusubmitSitemap::sendXml($content, 1);
- //file_put_contents('/home/work/baidusubmit.log', date('[Y-m-d H:i:s]')."n".$r, FILE_APPEND); //phpfensi.com
- }
改成以下代码,以便计算程序运行时间,代码如下:
- static function publishPost($postid)
- {
- // 标记程序执行开始时间
- list($usec, $sec) = explode(" ",microtime());
- $time_start = ((float)$usec + (float)$sec);
- require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . './inc/sitemap.php';
- $schema = BaidusubmitSitemap::genSchemaByPostId($postid, $xpost);
- if ('publish' != $xpost->post_status || '' != $xpost->post_password) {
- self::deletePost($postid);z
- return;
- }
- $xml = $schema->toXml();
- $content = BaidusubmitSitemap::genPostXml($xml);
- //file_put_contents('/home/work/baidusubmit.log', date('[Y-m-d H:i:s]')."n".$content, FILE_APPEND);
- $r = BaidusubmitSitemap::sendXml($content, 1);
- //file_put_contents('/home/work/baidusubmit.log', date('[Y-m-d H:i:s]')."n".$r, FILE_APPEND);
- // 标记程序执行结束时间
- list($usec, $sec) = explode(" ",microtime());
- $time_end = ((float)$usec + (float)$sec);
- // 计算程序执行总用时
- $time = $time_end - $time_start;
- // 发送邮件,将ludou#ludou.org改成你的邮件地址
- wp_mail('ludou#ludou.org', '程序用时', '总时长(单位:秒):'.$time);
- }
将代码中的 ludou#ludou.org 改成你的邮箱地址,然后上传到你的网站服务器,并在WordPress后台发布或更新一篇文章,这时你的邮箱中就会收到一封标题为 程序用时 的邮件,邮件内容中就会看到程序运行时长,我这里测试的运行时间是15秒,这样的时间实在没法忍受,不过看在它还有点用处的份上,还是忍忍吧.
最后,测试完毕,记得将代码还原到修改之前.
原文转自:ludou.org
Tags: WordPress延长发布 wp发布时间
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)