Как добавить мета -теги Drupal 7


32

Например, необходимо получить следующую запись:

<meta name="keywords" content="{keywords}">

В файле template.php создаем функцию preprocess_page($page):

function ВАША_ТЕМА_preprocess_page($page) {
	 $meta_keywords = array(
	    '#tag' => 'meta',
	    '#attributes' => array(
	      'name' => 'keywords',
	      'content' => '{keywords}',
	    ),
	  );
	  drupal_add_html_head($meta_keywords, 'meta_keywords');
}

В 7 версии Друпала по умолчанию подставляется:

<meta name="Generator" content="Drupal 7 (htt p: //drupal . org)" >

Один из способов от "этого" избавиться: в файле template.php создать функцию:

function ВАША_ТЕМА_html_head_alter(&$head_elements) {
 unset($head_elements['system_meta_generator']);
}
Update 15.02.2014 Еще один вариант добавления тегов в модуле
function ИМЯ_МОДУЛЯ_html_head_alter(&$head_elements) {
  $items = array(
    'news'     => array(
      'link'  => 'news.rss',
      'title' => 'Новости на сайте sitename',
    ),
    'articles' => array(
      'link'  => 'articles.rss',
      'title' => 'Новые статьи на сайте sitename',
    ),
    'blogs'    => array(
      'link'  => 'blogs.rss',
      'title' => 'Блоги на сайте sitename',
    ),
    'events'   => array(
      'link'  => 'events.rss',
      'title' => 'Афиша на сайте sitename',
    ),
  );
  foreach ($items as $name => $rss) {
    $head_elements['ij_main_rss_' . $name] = array(
      '#type'       => 'html_tag',
      '#tag'        => 'link',
      '#attributes' => array(
        'rel'   => 'alternate',
        'type'  => 'application/rss+xml',
        'title' => $rss['title'],
        'href'  => url($rss['link'], array('absolute' => TRUE)),
      ),
    );
  }
}
}

Результат:

<link rel="alternate" type="application/rss+xml" title="Афиша на сайте sitename" href="http //sitename.ru/events.rss" />
​<link rel="alternate" type="application/rss+xml" title="Блоги на сайте sitename" href="http //sitename.ru/blogs.rss" />
<link rel="alternate" type="application/rss+xml" title="Новости на сайте sitename" href="http //sitename.ru/news.rss" />
​<link rel="alternate" type="application/rss+xml" title="Новые статьи на сайте sitename" href="http //sitename.ru/articles.rss" />

Все сделала так как написано в этой статье, но к сожалению сайт вообще перестает отображаться, может я упустила помимо кода какие-нибудь важные нюансы...?

Напишите Ваш код, который Вы добавили в template.php. Так сложно что то сказать.

Я просто для теста поставила свою тему не меняя пока 'name' и 'content'
function theme677_preprocess_page($page) {
$meta_keywords = array( '#tag' => 'meta', '#attributes' => array( 'name' => 'keywords', 'content' => '{keywords}', ), ); drupal_add_html_head($meta_keywords, 'meta_keywords'); }
function theme677_html_head_alter(&$head_elements) { unset($head_elements['system_meta_generator']); }

Проверьте, может в template.php уже есть функции theme677_html_head_alter или theme677_preprocess_page

Добавить комментарий
Может быть интересно

Данный скрипт поможет пересохранить файлы Excel в csv. Может быть полезно перед отправкой прайсов на хостинг для дальнейшей обработки

5

Порядок действий для установки Solr на сервере с Centos 7

4

В операционной системе Windows, как и в других операционных системах, интерактивные (набираемые с клавиатуры и сразу же выполняемые) команды выполняются с помощью так называемого командного интерпретатора, иначе называемого командным процессором или оболочкой командной строки (command shell).

3

Несколько способов как в twig объединить несколько строк в одну

3
Снова возвращаемся к migrate. Довольно удобный фреймворк для импорта данных в Друпал. Один из распространенных форматов источника для импорта - CSV. Поддерживается migrate из коробки. Описание и примеры работы с классом MigrateSourceCSV можно найти на drupal.org.
2