DedeCMS定時自動生成站點地圖sitemap.xml的實現方法

織夢dedecms默認沒有生成站點地圖sitemap.xml文件的功能,不過咱們能夠本身經過簡單的二次開發來給織夢增長這個功能,而後還能夠用計劃任務的功能讓織夢可以定時自動生成這個文件,下面就給你們詳細講講如何實現這樣的功能:php

 

第一步、首先在模板目錄放一個sitemap.xml的模板文件,文件的內容以下:html

 

01 <?xml version="1.0" encoding="UTF-8"?>
03 <url>
04 <loc>/</loc>
05 <lastmod>{dede:arclist row=1 titlelen=24 orderby=pubdate}
06 [field:pubdate function=strftime('%Y-%m-%d',@me)/]
07 {/dede:arclist}</lastmod>
08 <changefreq>daily</changefreq>
09 <priority>1.0</priority>
10 </url>
11 {dede:channel row='10' type='top'}
12 <url>
13 <loc>[field:typelink /]</loc>
14 <changefreq>daily</changefreq>
15 <priority>0.8</priority>
16 </url>
17 {/dede:channel}
18 {dede:arclist row=1000 orderby=pubdate}
19 <url>
20 <loc>[field:arcurl/]</loc>
21 <lastmod>[field:pubdate function=strftime('%Y-%m-%d',@me)/]</lastmod>
22 <changefreq>monthly</changefreq>
23 </url>
24 {/dede:arclist}
25 </urlset>

 

第二步、手動寫一個計劃任務執行文件,將該文件命名爲generate_sitemap.php,放在/plus/task目錄裏,文件的內容以下:curl

 

01 <?php
02 //定時生成網站地圖
03 require_once(dirname(__FILE__).'/../../include/common.inc.php');
04 include(DEDEINC."/arc.listview.class.php");
05 $lv = new ListView();
06  
07 //解析模板到字符串
08 $lv->PartView = new PartView($lv->TypeID,false);
09 $lv->PartView->SetTypeLink($lv->TypeLink);
10 $lv->PartView->SetTemplet(DEDETEMPLATE.'/2012/sitemap.xml');
11 $html = $lv->PartView->GetResult();
12 file_put_contents('../../sitemap.xml',$html);
13   
14 ?>

 

第三步、在織夢後臺添加計劃任務,系統——計劃任務管理——增長新任務:網站

 

任務名稱:定時生成網站地圖ui

 

運行程序:generate_sitemap.phpurl

 

執行時間本身根據須要進行適當的設置spa

 

其它選項默認便可。code

 


第四步、在模板目錄的foot.hml文件或其餘公共模板include文件的body標籤結束以前加上代碼後生成全站便可。xml

 

添加完成後網站用戶在計劃任務規定的時間內瀏覽一下網頁就能夠觸發計劃任務文件的執行,就能夠自動生成一次sitemap.xml,若是上次運行時間的時間正常就證實定時任務執行成功了。htm

相關文章
相關標籤/搜索