織夢(DEDE CMS)要怎樣才能每天定時更新網站根目錄的sitemap.xml地圖呢?這裡利用織夢的計劃任務與執行程式碼達到每日自動更新地圖的方法。
工具/原料
織夢CMS
電腦
PHP程式碼編輯器
方法/步驟
首先新建一個PHP檔案把如下程式碼複製下去:
<!--以下程式碼開始-->
<?php
//定時生成網站地圖
require_once(dirname(__FILE__).'/../../include/common.inc.php');
include(DEDEINC."/arc.listview.class.php");
$lv = new ListView();
//解析模板到字串
$lv->PartView = new PartView($lv->TypeID,false);
$lv->PartView->SetTypeLink($lv->TypeLink);
$lv->PartView->SetTemplet(DEDETEMPLATE.'/2012/sitemap.xml');
$html = $lv->PartView->GetResult();
file_put_contents('../../sitemap.xml',$html);
?>
<!--以上程式碼結束-->
注:可以在裡面把程式碼直接複製的話會出現錯誤道理大家都明白,我也遇到過不少次明明是對的但是在自己複製粘的時候就……
如果出錯的話從這裡下載:
然後把下載下來的壓縮包解壓出來把裡面的“auto-xml.php”檔案上傳到你網站根目錄下的“plus”/“task”目錄下(一定要是這個目錄其它目錄不行)
現在執行的程式碼已經做好了我們可以去織夢後臺新建一個計劃任務
現在我們計劃任務也做好了最後一步就是去網站呼叫了,這裡我要說一個我以前的操作了簡直太傻了就是這麼引用的 <script src="/plus/auto-xml" language="javascript"></script>(注:前面的程式碼是錯的)
正確的方法是:<script language="javascript" src=" /plus/task.php?client=js"></script>
把正確的方法新增到全站裡比如:頁尾的foor或者頁頭的head都行。
結尾了說明一下如果出現理想的效果可以多建幾次計劃任務把時間多設幾個比如建5個同樣的計劃任務,分別把時間調成1點、2點、3點、4點、5點。這個樣子的好處就是剛做的新站沒多少人訪問可能在指定的時間點沒有人去也就不會更新了。
(剛才在釋出的時候因PHP語言的特殊原因半形不能發已全部轉成全形自己替換一下)
注意事項
儘量使用程式碼編輯器進行貼上操作比如DR等
auto-xml程式必須放在網站plus的task目錄