Убираем ссылки на RSS со страниц терминов
Есть у Drupal такая привычка на странице терминов таксономии указывать в метатегах ссылки на RSS Feed, а у Google есть привычка игнорировать Robots.txt и индексировать весь этот хлам. В один момент мне это надоело и я решил побороть это.
Может для разработчика это и мелочь, но меня, как SEOшника, наличие мусорных страниц в "соплях" Google (Supplemental Index) дико раздражают. Индексируются эти страницы благодаря тому, что в страницы присутствует ссылка на RSS, например:
- <link rel="alternate" type="application/rss+xml" title="RSS - Google" href="http://www.angarsky.ru/taxonomy/term/10/feed" />
Первой мыслью для решения этой задачи было использовать
для отключения страницы RSS термина вообще в целом. Однако это не помогло: страницы отключена, а ссылка в метатегах все равно осталась. Поэтому пришлось подбираться к метатегам через hook_menu_alter()
:hook_html_head_alter()
- /**
- * Implements hook_html_head_alter().
- */
- function MY_MODULE_html_head_alter(&$head_elements) {
- foreach ($head_elements as $key => $element) {
- // Disables links to taxonomy term rss.
- $href = isset($element['#attributes']['href']) ? $element['#attributes']['href'] : NULL;
- if (isset($href) && preg_match("/taxonomy\/term\/[0-9]+\/feed$/", $href)) {
- unset($head_elements[$key]);
- }
- }
- }
Видел решение, где вместо RegExp предлагалось проверять на
, однако считаю его не совсем корректным, так как этой проверкой можно зарубить ссылки и на нужные фиды RSS.$element['#attributes']['type'] == 'application/rss+xml'
Комментарии
Благодарю за код. Вопрос. Как мне убрать значок и ссылку в нем на ленту, как на главной станице так и таксономиях. Тема стандартная, garland.
убратьpage.tpl.php
попробуй.$feed_icons
Приветы! Странно, однако хук не работает [добавлял в template темы], в исходом коде таксономий всё равно вылазит ссылка на RRS.
Добавить комментарий