Drupal 作爲優秀的世界級開源 CMS 建站系統,天然有不少開發者貢獻與 SEO 相關的模塊插件擴展例如:用來批量自定義 URL 的PathAuto 模塊和製做 SiteMap 站點地圖的 xmlSiteMap 模塊固然還有就是用於 keywords description 等等位於頁面 HEAD 標籤內一些 META 標記的 NodeWords 模塊等等,但我我的一般對於 20 行如下代碼可以實現的功能不大願意使用第三方模塊,因此這裏提供一些 Drupal 原生代碼以實如今網頁的 HEAD 標籤內添加一些對 SEO 有利的 META 標籤甚至 TITLE 標籤等等…… php
示例將僅僅針對 NODE 文章節點頁面作 SEO 優化演示,其餘頁面你們能夠以此類推,具體須要將如下代碼放置於當前使用主題模板的(node.tpl.php)文件中: html
if($page != 0){ //首先判斷是否爲節點單頁而非文章列表頁; $keys = $info= NULL; $info = substr(filter_xss($node->content['body']['#value'], array()), 0, 240); //過濾節點內容部分的特殊字符並截取前 240 個字符作爲摘要部分; foreach($node->taxonomy as $term){ $keys .= $term->name; } //遍歷節點的術語標籤並存入數組備用; drupal_set_html_head('<META name=keywords content="'.$keys.'">'); drupal_set_html_head('<META name=description content="'.$info.'">'); //利用 Drupal 函數將 html 代碼加入頁面 head 標籤; }
示例中直接使用術語表 taxonomy 中的術語標籤 term 作爲網頁的 keywords 頁面關鍵字,而後使用節點 body 部分的前 240 個文本字符作爲 description 頁面摘要部分,固然你能夠根據具體狀況自行調整,若是你是 SEO 控的話大能夠把節點的 log 字段好好利用起來作爲摘要部分自行錄入,也能夠單首創建新的 CCK 專門用於 SEO 都是能夠的,只是在拾取字段的時候調整代碼便可。 node
推薦閱讀使用的幾個函數: api
drupal_set_html_head:用於在當前頁面的 HEAD 標籤內添加 HTML 代碼; 數組
drupal_set_title:用於修改當前頁面的 title 標籤; xss
drupal_set_breadcrumb:用於修改當前頁面的麪包屑數組; 函數
這裏主要想說明的是 Drupal 的不少函數都是能夠在主題模板和模塊插件中共用的,並且諸如 drupal_set_html_head 等等函數不單單在模板的 page.tpl.php 中管用在其餘有效的 tpl 文件中也都是可使用的,記得我剛剛接觸 Drupal 的時候一直苦惱與如何在節點模板區域控制整個頁面的 title 標題和 breadcrumb 麪包屑直到後來研習 Drupal 的模板渲染引擎機制才恍然大悟…… 優化