Убираем ссылки из тизера

Из коробки при выводе материалов на главной странице в виде тизеров друпал добавляет две ссылки «подробнее» и «добавить комментарий». По сути дела обе ссылки не только совершенно бесполезные, но и вредные.

Первая — вредна с точки зрения SEO. Поисковик любит ссылки со смыслом. В этом плане текст «подробнее» выглядит бессмысленным.

Вторая — создает нехорошие ссылки вида comment/reply/<nid> дублирующие основную страницу, хотя они и закрыты в robots.txt, но всё же, зачем? К тому же такая ссылка нафик особо не нужна, ну кто будет оставлять комментарий не прочитав сам материал?

Итак, решаем убрать.

Вариант номер один. Открываем шаблон node.tpl и убираем оттуда строку <?php print render($content['links']); ?> вместе со всеми окружающими ее потрохами.

Вариант номер два. Более гибкий. Прописываем в template.php свою функцию:

  1. function имя_вашей_темы_node_view_alter(&$build){
  2.  
  3.   if ($build['#view_mode'] == 'teaser' && $build['#bundle'] == 'ваш_тип_материала'){
  4.  
  5. // убираем ссылку "добавить новый комментарий"
  6.     unset($build['links']['comment']['#links']['comment-add']);
  7.  
  8. // убираем ссылку "кол-во комментариев"
  9.     unset($build['links']['comment']['#links']['comment-comments']);
  10.  
  11. // убираем ссылку "подробнее"
  12. unset($build['links']['node']['#links']['node-readmore']);
  13.   }
  14. }

Здесь, как вы видите, мы можем убрать каждую ссылку в отдельности, а не все сразу, на случай, если это необходимо. Плюс можно задать условие для конкретного типа материала, что убирать, а что нет. Ну и для особо увлеченных — менять содержимое ссылок, например текст «подробнее» сменить на «читать далее» или на заголовок материала.

С точки зрения производительности, наверное, предпочтительнее первый вариант, но думается, что при включеном кешировании разницы не будет вообще.

Спасибо за внимание :-)