Как определить метатеги в представлениях? [закрыто]

8

Есть ли какой-либо модуль или какая-либо конфигурация, в которой я могу определить метатеги для отображения страницы представлений в drupal 7 с помощью Views 3.0?

Луис Гильерме
источник

Ответы:

7

Мета - теги быстрый модуль позволяет указать мета - тег на основе пути для ваших взглядов. Если вы включите метатеги на основе пути, вы увидите ссылку «Редактировать метатеги» на странице представлений (важно - не на экране редактирования представлений!).


источник
Хорошо, я использовал версию 1.9. Эта функция для пометки страницы на основе URL-адреса доступна только в бета-версии 2.0. Спасибо.
Луис Гильерме
Для меня это была вкладка «Метатеги на основе пути» на самой странице (внешний интерфейс). Также должен был убедиться, что render($tabs)был напечатан в page.tpl.php.
leymannx
12

Модуль Metatag имеет интеграцию представлений из коробки начиная с 7.x-1.0-beta2.

Установите подмодуль metatags_views, и вы получите опции метатэга в пользовательском интерфейсе представлений для любого отображения страницы представлений (комментарий Пола Куэрола ниже).

Мильковский
источник
2
Удивлен, что этот ответ не получает больше любви ... Если вы используете модуль metatags, тогда просто установите подмодуль metatags_views, и вы получите параметры метатега в пользовательском интерфейсе представлений для любого отображения страницы представлений.
Пол Керол,
Согласен. Но ответ выше был в 2011 году. В то время субмодуля metatags_views не было. Вы можете добавить текст о подмодуле metatags_views в мой ответ, если хотите.
Милковский
1

Если вы не хотите использовать «Path-Based метатеги» , как упоминалось ранее , вы могли бы сделать по умолчанию metatags_quick поля добавлены к термину сам работать как желательно со следующим подходом. Вот пример того, как я сделал это с роботами и с помощью drupal_add_html_head():

/**
 * Implements hook_preprocess_HOOK()
 */
function MYMODULE_preprocess_page(&$vars) {
  // if this is a term page and not being edited
  if (arg(1) == 'term' && is_numeric(arg(2)) && is_null(arg(3))) {
    // if this is a Views page
    $view = (array)views_get_page_view();
    if (!empty($view)) {
      // if metatags_quick robots are set
      $term = taxonomy_term_load(arg(2));
      if (isset($term->meta_robots) && !empty($term->meta_robots[LANGUAGE_NONE][0]['metatags_quick']))

      $element = array(
        '#tag' => 'meta',
        '#attributes' => array(
          'name' => $term->meta_robots[LANGUAGE_NONE][0]['meta_name'],
          'content' => $term->meta_robots[LANGUAGE_NONE][0]['metatags_quick']
        ),
      );
      drupal_add_html_head($element, 'MYMODULE');
    }
  }
}
leymannx
источник
-1

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

Предотвращает проблему интеграции представлений. Также предоставляет преимущества хлебных крошек, меню, pathauto и т. Д., Которые легче настроить, когда страница является узлом, а не видом.

DougF
источник
Даунвот, поскольку я не вижу в этом возможности во многих случаях, например, на сайте, у которого есть несколько контекстных аргументов в представлении, а мета для разных аргументов представления должна отличаться.
Phizes