如何为 Drupal 添加简单的 SEO META 标签(title keywords description)

Drupal 做为优秀的世界级开源 CMS 建站系统,自然有很多开发者贡献与 SEO 相关的模块插件扩展例如:用来批量自定义 URL 的PathAuto 模块和制作 SiteMap 站点地图的 xmlSiteMap 模块当然还有就是用于 keywords description 等等位于页面 HEAD 标签内一些 META 标记的 NodeWords 模块等等,但我个人通常对于 20 行以下代码能够实现的功能不大愿意使用第三方模块,所以这里提供一些 Drupal 原生代码以实现在网页的 HEAD 标签内添加一些对 SEO 有利的 META 标签甚至 TITLE 标签等等……

示例将仅仅针对 NODE 文章节点页面做 SEO 优化演示,其他页面大家可以以此类推,具体需要将以下代码放置于当前使用主题模板的(node.tpl.php)文件中:

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('');
	drupal_set_html_head('');
		//利用 Drupal 函数将 html 代码加入页面 head 标签;
}

示例中直接使用术语表 taxonomy 中的术语标签 term 做为网页的 keywords 页面关键字,然后使用节点 body 部分的前 240 个文本字符做为 description 页面摘要部分,当然你可以根据具体情况自行调整,如果你是 SEO 控的话大可以把节点的 log 字段好好利用起来做为摘要部分自行录入,也可以单独创建新的 CCK 专门用于 SEO 都是可以的,只是在拾取字段的时候调整代码即可。

推荐阅读使用的几个函数:

drupal_set_html_head:用于在当前页面的 HEAD 标签内添加 HTML 代码;

drupal_set_title:用于修改当前页面的 title 标签;

drupal_set_breadcrumb:用于修改当前页面的面包屑数组;

这里主要想说明的是 Drupal 的很多函数都是可以在主题模板和模块插件中共用的,而且诸如 drupal_set_html_head 等等函数不仅仅在模板的 page.tpl.php 中管用在其他有效的 tpl 文件中也都是可以使用的,记得我刚刚接触 Drupal 的时候一直苦恼与如何在节点模板区域控制整个页面的 title 标题和 breadcrumb 面包屑直到后来研习 Drupal 的模板渲染引擎机制才恍然大悟……