¿Cómo definir las metaetiquetas en las vistas? [cerrado]

8

¿Hay algún módulo o alguna configuración que pueda definir las metaetiquetas para la visualización de la página de vistas en drupal 7 usando Views 3.0?

Luiz Guilherme
fuente

Respuestas:

7

El módulo rápido Meta tags le permite especificar Meta tags en función de la ruta para sus vistas. Si habilita metaetiquetas basadas en rutas, verá el enlace 'Editar metaetiquetas' en la página de vistas (importante, ¡no en la pantalla de edición de vistas!).


fuente
Bien, estaba usando la versión 1.9. Esta función para etiquetar una página basada en la URL solo está disponible en la versión 2.0 beta. Gracias.
Luiz Guilherme
Para mí era una pestaña titulada "Metatags basados ​​en rutas" en la página misma (frontend). También tenía que asegurarse de que render($tabs)estaba impreso en page.tpl.php.
leymannx
12

El módulo Metatag tiene integración de vistas desde la caja desde 7.x-1.0-beta2.

Instale el submódulo metatags_views y obtendrá opciones de metaetiquetas en la IU de vistas para cualquier visualización de la página de vistas (comentario de Paul Querol a continuación).

milkovsky
fuente
2
Sorprendido, esta respuesta no es obtener más amor ... Si está utilizando el módulo de metatags, simplemente instale el submódulo metatags_views y obtendrá las opciones de metatag en la interfaz de usuario de vistas para cualquier visualización de página de vistas.
Paul Querol
De acuerdo. Pero la respuesta anterior fue en 2011. No había submódulo metatags_views en ese momento. Si lo desea, puede agregar el texto sobre el submódulo metatags_views en mi respuesta.
milkovsky
1

Si no desea utilizar las "Metaetiquetas basadas en rutas" como se mencionó anteriormente, puede hacer que los campos metatags_quick predeterminados agregados al término en sí funcionen como se desea con el siguiente enfoque. Aquí hay un ejemplo de cómo lo hice con robots y la ayuda de 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
fuente
-1

La solución más directa es agregar la vista como un bloque dentro de un nodo, y luego usar un módulo como Metatag para colocar metatags en el nodo.

Evita el problema de integración de vistas. También proporciona el beneficio de migas de pan, menús, pathauto, etc., todo más fácil de configurar cuando la página es un nodo en lugar de una vista.

DougF
fuente
Voto negativo ya que no veo que esto sea factible en muchos casos, como un sitio que tiene algunos argumentos contextuales en una vista, y el meta necesita diferir para diferentes argumentos de vista.
Phizes