【道勤網(wǎng)】- bmrsportswear.com 軟件視頻自學教程|免費教程|自學電腦|3D教程|平面教程|影視動畫教程|辦公教程|機械設計教程|網(wǎng)站設計教程!【道勤網(wǎng)】

標題: 百度WordPress結(jié)構化數(shù)據(jù)插件會延長文章發(fā)布時間 [打印本頁]

作者: discuz美化    時間: 2015-2-7 10:24
標題: 百度WordPress結(jié)構化數(shù)據(jù)插件會延長文章發(fā)布時間

之前百度推出了一款WordPress結(jié)構化數(shù)據(jù)插件,經(jīng)使用感覺還不錯。只是最近發(fā)現(xiàn)一個問題,在WordPress后臺發(fā)布新文章時,點擊發(fā)布后,要等很久頁面才能提交成功,而且經(jīng)常造成主機資源超限,出現(xiàn)500錯誤。

經(jīng)排查,露兜發(fā)現(xiàn)此問題是由WordPress結(jié)構化數(shù)據(jù)插件造成的,它的publish_post執(zhí)行函數(shù)耗時15秒!停用該插件后,文章發(fā)布就變得很快了。當然也有可能是這個插件跟我網(wǎng)站的某些代碼不兼容造成。如果你的WordPress后臺發(fā)布文章也要等很長時間,并且安裝了這個插件,不妨用下面的方法排查一下,確定這段代碼的執(zhí)行時間是否過長:

用文本編輯器打開該插件目錄下的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.     // 標記程序執(zhí)行開始時間
  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.     // 標記程序執(zhí)行結(jié)束時間
  18.     list($usec, $sec) = explode(" ",microtime());
  19.     $time_end =  ((float)$usec + (float)$sec);

  20.     // 計算程序執(zhí)行總用時
  21.     $time = $time_end - $time_start;

  22.     // 發(fā)送郵件,將ludou#ludou.org改成你的郵件地址
  23.     wp_mail('ludou#ludou.org', '程序用時', '總時長(單位:秒):'.$time);
  24. }
復制代碼

將代碼中的 ludou#ludou.org 改成你的郵箱地址,然后上傳到你的網(wǎng)站服務器,并在WordPress后臺發(fā)布或更新一篇文章,這時你的郵箱中就會收到一封標題為 程序用時 的郵件,郵件內(nèi)容中就會看到程序運行時長。我這里測試的運行時間是15秒,這樣的時間實在沒法忍受,不過看在它還有點用處的份上,還是忍忍吧。

最后,測試完畢,記得將代碼還原到修改之前。

PS:小清新圖片建議,關閉實時推送可以緩解這個問題。







歡迎光臨 【道勤網(wǎng)】- bmrsportswear.com 軟件視頻自學教程|免費教程|自學電腦|3D教程|平面教程|影視動畫教程|辦公教程|機械設計教程|網(wǎng)站設計教程!【道勤網(wǎng)】 (http://bmrsportswear.com/) Powered by Discuz! X3.4