在前幾天寫的一篇博文《為網站添加圖片網站地圖》中我提到有三種辦法來實現網站地圖:
- 專門寫的php程序,與.htaccess的rewrite配合重寫網址(詳見《Drupal網站Views生成頁面的XML網站地圖構建》)
- 用module文件中的menu路徑來生成(詳見《Drupal中用module文件中的menu路徑來生成sitemap.xml》)
- 用views中的xml views來生成(現在來寫這篇博客文章來介紹)
以前很早就想過用views來做xml sitemap,替代一直用的sitemap.php,但沒有成功,這幾天終于是嘗試出來了,下面進行記錄。
首先需要安裝和開啟Views XML這個模塊(是Views的一個子模塊Views Datasource中的一部分),如下圖:
然後在Views中創建這樣的頁面,格式要選擇“XML data document”,并進行如下樣式選項設置:
而需要獲取數據的邏輯與自己寫php程序中的查詢語句邏輯是一樣的,隻是這裡用Views來實現。另外,輸出的字段需要添加PHP字段,以便對其它字段内容進行獲取和變換,最後輸出合适的loc。然後可以添加幾個固定内容字段用于priority, changefreq,而lastmod可以根據需要使用固定内容字段填充或者PHP字段進行計算。
這裡是一個簡單的例子:sitemap-emoji-version.xml。
對于數量比較少的,用這個辦法比編寫sitemap.php方便多了,不需要php程序連接數據庫、設置.htaccess等。不過如果鍊接超過幾萬個,還有索引型sitemap如何來做、gz壓縮如何做等問題還沒有考慮和嘗試。
另外,還找到生成的views頁面設置加到sitemap中的辦法,以前是人工添加到sitemap,但新增頁面有時容易忘記去添加,可以設置一個Sitemap菜單類别,把views頁面添加一個菜單項(屬于Sitemap菜單類别),這樣Drupal的Sitemap就可以在更新的時候自動把這樣的views頁面添加到網站地圖中。
還有更詳細的步驟需要截更多的圖,這裡就不添加太多了,自己摸索摸索就OK。
评论2
drupal有現成的sitemap模塊
drupal有現成的sitemap模塊 https://www.drupal.org/project/xmlsitemap謝謝,這個XMLSITEMAP模塊我們也用了很多年了
謝謝,這個XMLSITEMAP模塊我們也用了很多年了,隻是有部分我們的需求這個模塊不好滿足,我們才使用了上面文章中的另外的辦法。