禁用Drupal7的RSS订阅功能

标签:

我们都知道Drupal7默认就启用了RSS订阅功能,包括首页,以及分类,聚合,Blog等多种内容的订阅。但有时候我们可能希望关闭网站的订阅功能,那该怎样做呢?本文就提供一种解决方案给大家。

第一步就是安装RSS Permissions模块,此模块可以给Drupal核心自带的几处RSS订阅功能加上权限控制,而如果我们开启模块并且不去权限页面对匿名用户和普通用户开启权限,他们将无法使用订阅功能。

第二步,虽然功能禁用了,但页面上的RSS订阅声明和RSS地址还在,使用某些浏览器的时候还能看见RSS订阅图标,这时我们需要使用Drupal的Hook机制去掉这个RSS声明。参考代码如下:(注意这个hook代码也可以写在模块里)

function MY_THEME_html_head_alter(&$head_elements) {
  foreach ($head_elements as $key => $element) {
    if (preg_match('/drupal_add_html_head_link:alternate:.*/', $key)) {
      unset($head_elements[$key]);
    }
  } 
}

第三步,已经去掉了head标签里的RSS声明,但发现页面上还有RSS订阅图标,这个需要修改主题里的page.tpl.php模块,去掉一行代码

<?php print $feed_icons; ?>

或者在template.php里,删掉$feed_icons模板变量

function bartik_preprocess_page(&$variables) {
  $variables['feed_icons'] = NULL;
}