Заполняем мета тег keywords терминами которыми помечена нода

Распространённая ситуация — есть ноды, у нод есть теги. Для улучшения SEO, неплоха бы выводить эту информацию в мета-теге keywords.

Для решения задачи — создаём файл template.php в папке темы, если его ещё там нет. Добавляем туда функцию предварительной обработки страницы:

Drupal 6

function phptemplate_preprocess_page(&$vars) {
  if (isset($vars['node']->taxonomy)) {
    $keywords = array();
    foreach ($vars['node']->taxonomy as $tag) {
      $keywords[] = $tag->name;
    }
    if ($keywords) {
      $vars['head'] = '<meta name="keywords" content="' . implode(', ', $keywords) . '" />' . "\n" . $vars['head'];
    }
  }
}

Drupal 7

function THEMENAME_preprocess_node(&$variables) {
  if ($variables['view_mode'] == 'full' && node_is_page($variables['node'])) {
    $keywords = array();
    foreach (field_get_items('node', $variables['node'], 'field_tags') as $item) {
      $keywords[] = check_plain($item['taxonomy_term']->name);
    }
    drupal_add_html_head(array(
      '#type' => 'html_tag',
      '#tag' => 'meta',
      '#attributes' => array(
        'name' => 'keywords',
        'content' => implode(', ', $keywords),
      ),
   ), 'meta_keywords');
  }
}

Очищаем кэш.

Результат можно посмотреть в html коде этой страницы:
<meta name="keywords" content="drupal, seo, полезняшки, таксономия" />

Написанное актуально для
Drupal 6, Drupal 7
Теги:
seo, template.php, полезняшки, таксономия
Добавлено: 18 Июля 2018 07:37:17 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...