Jak zdefiniować metatagi w widokach? [Zamknięte]

8

Czy jest jakiś moduł lub jakaś konfiguracja, w której mogę zdefiniować metatagi dla strony widoków wyświetlanej w Drupal 7 za pomocą Views 3.0?

Luiz Guilherme
źródło

Odpowiedzi:

7

Meta tagi szybki moduł pozwala określić Meta tagi na podstawie ścieżki dla swoich poglądów. Jeśli włączysz metatagi oparte na ścieżce, zobaczysz link „Edytuj metatagi” na stronie wyświetleń (ważne - nie na ekranie edycji widoków!).


źródło
Fajnie, korzystałem z wersji 1.9. Ta funkcja oznaczania strony na podstawie adresu URL jest dostępna tylko w wersji 2.0 beta. Dzięki.
Luiz Guilherme
Dla mnie była to zakładka „Metatagi oparte na ścieżce” na samej stronie (frontend). Musiałem także upewnić się, że render($tabs)został wydrukowany page.tpl.php.
leymannx
12

Metatag Moduł posiada ciami integracji z pola, ponieważ 7.x-1.0-beta2.

Zainstaluj podmoduł metatags_views, a dostaniesz opcje metatagu w interfejsie widoków dla dowolnej strony wyświetlania widoków (komentarz Paula Querola poniżej).

Milkovsky
źródło
2
Zaskoczony, że ta odpowiedź nie zyskuje więcej miłości ... Jeśli używasz modułu metatagów, po prostu zainstaluj podmoduł metatags_views, a otrzymasz opcje metatagu w interfejsie widoków dla dowolnego wyświetlania strony widoków.
Paul Querol
Zgodzić się. Ale powyższa odpowiedź była w 2011 roku. W tym czasie nie było submodułu metatags_views. Możesz dodać tekst o submodule metatags_views do mojej odpowiedzi, jeśli chcesz.
milkovsky
1

Jeśli nie chcesz używać „Metatagów opartych na ścieżce”, jak wspomniano wcześniej, możesz sprawić, aby domyślne pola metatags_quick dodane do samego terminu działały zgodnie z oczekiwaniami, stosując następujące podejście. Oto przykład tego, jak to zrobiłem z robotami i pomocą 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
źródło
-1

Najprostszym rozwiązaniem jest dodanie widoku jako bloku wewnątrz węzła, a następnie użycie modułu takiego jak Metatag, aby umieścić metatagi w węźle.

Zapobiega problemowi integracji widoków. Zapewnia również korzyści z bułki tartej, menu, pathauto itp. Wszystko łatwiejsze do skonfigurowania, gdy strona jest węzłem, a nie widokiem.

DougF
źródło
Usprawiedliw, ponieważ nie uważam tego za wykonalne w wielu przypadkach, na przykład w witrynie, która ma kilka kontekstowych argumentów w widoku, a meta musi się różnić dla różnych argumentów w widoku.
Phizes