« drupal试验网站drupal内核的升级 »

在drupal网页中加入自定义metatag

这是个小众问题,或许有很多方法,我能接受并实践成功的是修改当前theme的template.php。

有两种修改方案,一种是修改yourtheme_preprocess_html,缺点是这个函数默认已经存在,需要在这个函数尾部添加以下示例代码。

/*
* Implements hook_preprocess_html()
* Set up variables from the environment
// First, we must set up an array
$element = array(
    '#type' => 'html_tag',
    '#tag' => 'meta',
    '#attributes' => array('http-equiv' => 'X-UA-Compatible', 'content' => 'IE=edge,chrome=1'),
  );
drupal_add_html_head($element, 'chrome_frame');

另一种方案是我选取的方案,即在template.php尾部添加yourtheme_html_head_alter函数,这个比较清楚,也容易和原有代码区分。

/*
* Implements hook_html_head_alter
*/
function yourtheme_html_head_alter(&$head_elements) {

  // Force the latest IE rendering engine and Google Chrome Frame.
  $head_elements['chrome_frame'] = array(
    '#type' => 'html_tag',
    '#tag' => 'meta',
    '#attributes' => array('http-equiv' => 'X-UA-Compatible', 'content' => 'IE=edge,chrome=1'),
  );
}

以上代码中的yourtheme需改成当前正在使用的theme名称。

修改完后可能还存在缓存问题,需要清理一下缓存才能生效。顺便提一下metatag模块虽然也能在head中增加metatag,但似乎只能增加内置的seo标签,而不能增加自定义的标签。

解决这个问题的心得:英文资料更全面更靠谱。

参考网址:

https://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_html_head_alter/7

https://api.drupal.org/api/drupal/includes!common.inc/function/drupal_add_html_head/7

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。