Как удалить keywords?

Аватар пользователя ali-big ali-big 25 июля 2018 в 18:29

Приветствую всех. Drupal 8. Ребята подскажите как можно удалить метатег keywords из кода страницы (причем остальные метатеги оставить). Просто оставить keywords пустым не пойдет. Перерыл весь модуль metateg и понял что у меня ничего не получиться. В инете таким извратом тоже никто не занимался. Походу нужен какой то хук в файле шаблона. Как это сделать и куда копать не представляю.Помогите мне пожалуйста!
P.S. Затея не моя, это сеошник

0 Thanks

Комментарии

Аватар пользователя Andruxa Andruxa 25 июля 2018 в 22:48
1

Потому, что сеошник.

metatag.api.php:

/**
 * Alter the meta tags for pages that are not of content entities.
 *
 * @param array $metatags
 *   The special meta tags to be added to the page.
 * @param array $context
 *   The context, containing the entity used for token replacements.
 */

function hook_metatags_alter(array &$metatags, array $context) {
  // Exclude meta tags on frontpage.
  if (\Drupal::service('path.matcher')->isFrontPage()) {
    $metatags = NULL;
  }
}
Аватар пользователя ali-big ali-big 26 июля 2018 в 5:35

Смотрю и вижу только код в котором все метатеги не отображаются на главной странице, а мне необходимо удалить только keywords со всех страниц.

Аватар пользователя Andruxa Andruxa 26 июля 2018 в 21:20
1

array &$metatags говорит о том, что в хук передается по ссылке массив метатегов.

$metatags = NULL; - удалит все метатеги, а

unset($metatags['tag_name']); - удалит из метатегов тег tag_name

Аватар пользователя ali-big ali-big 27 июля 2018 в 6:14

В metatag.api.php делаю так:

<?php
function hook_metatags_alter(array &$metatags, array $context) {
    unset(
$metatags['keywords']);
  
// Exclude meta tags on frontpage.
  
if (\Drupal::service('path.matcher')->isFrontPage()) {
    
$metatags NULL;
  }
}
?>

Ничего не меняется. Если вставляю <?php$metatags NULL;?> то тоже ничего не меняется.

Аватар пользователя ali-big ali-big 27 июля 2018 в 6:47

Получилось! В файле metatag.module 427ой строкой добавляем как писал выше Andruxa unset($metatags['keywords']);
Должно получиться так:

foreach ($metatag_manager->tagsFromEntity($entity) as $tag => $data) {
      $metatags[$tag] = $data;
      unset($metatags['keywords']);
    }
  }

Вместо 'keywords' можно вставить например 'abstract' или любой другой тег и он не будет отображаться на страницах
Andruxa целую твои мысли!))

Аватар пользователя Semantics Semantics 27 июля 2018 в 8:14

Это получилось создать проблемы для будущих обновлений.
Выше вам же написали "в файле своего модуля."