¿Cómo eliminar ciertas metaetiquetas?

18

¿Cómo puedo eliminar estas etiquetas de mis páginas en Drupal 7?

<link rel="shortlink" href=" .... " />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
<link rel="canonical" href="...." />

Actualización : tengo el código para template.php, que elimina el generador y las etiquetas canónicas.

function program_html_head_alter(&$head_elements) {
  unset($head_elements['system_meta_generator']);
  foreach ($head_elements as $key => $element) {
    if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'canonical') {
      unset($head_elements[$key]); 
    }
  }
}

¿Alguien puede agregar algo para eliminar la etiqueta de enlace corto?

Pierre.Vriens
fuente
1
Todo se ve bien, pero ¿por qué sacar el canónico? Esto es realmente útil.

Respuestas:

11

Esto se muestra en html.tpl.php en la variable $ head. $ head se agrega a las variables en template_process_html usando drupal_get_html_head () . En esa función, puede ver que se llama a hook_html_head_alter () .

Allí puedes eliminarlos.

Sin embargo, tenga en cuenta que estos enlaces pueden ser importantes para SEO, para evitar que un motor de búsqueda piense que tiene contenido duplicado en su sitio, si, por ejemplo, un nodo está disponible a través de node / nid y el alias.

Berdir
fuente
hmm lo encuentro pero aún no puedo eliminarlo :) Creo que debería aprender php pronto :) Encuentro el código que se puede agregar a template.php (en la plantilla) y el código elimina la línea "Generador". function program_html_head_alter (& $ head_elements) {unset ($ head_elements ['system_meta_generator']); }
pero todavía tengo problemas con 2 líneas adicionales que necesito eliminar. No es bueno para SEO si tiene una página de inicio personalizada y una url de canonical no para el dominio principal solo para la subpágina ... lo mismo con shortlink: por qué alguien puede ver que el artículo tiene una dirección adicional con /node/... idea estúpida para agregar estas líneas a d7
Entonces, si tengo una nueva instalación de D7 con URL limpias y pathauto, ¿se establecerá automáticamente el enlace URL canónico?
Andy
Debería ser, sí.
Berdir
5

Uso la siguiente función dentro de mi archivo template.php:

/**
 * Used to remove certain elements from the $head output within html.tpl.php
 *
 * @see http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_html_head_alter/7
 * @param array $head_elements
 */
function YOUR_THEME_NAME_html_head_alter(&$head_elements) {
    $remove = array(
        'system_meta_generator',
        'metatag_canonical',
        'metatag_shortlink'
    );

    foreach ($remove as $key) {
        if (isset($head_elements[$key])) {
            unset($head_elements[$key]);
        }
    }

    // Use this loop to find out which keys are available.
    /* -- Delete this line to execute this loop
    echo '<pre>';
    foreach ($head_elements as $key => $element) {
        echo $key ."\n";
    }
    echo '</pre>';
    // */
}
Grillete de carne
fuente
Esto no funcionó para mí, 'metatag_canonicaly 'metatag_shortlinkno existen como índices de $head_elements(esto está en Drupal 7). La respuesta dada por @Levente funcionó bien.
4

También resolví shortlink, modificando tu código.

Alguien podría ordenarlo correctamente, porque no sé cómo ponerlo correctamente, y tampoco si tiene efectos secundarios de esta manera o no. Sin embargo, hace que los enlaces no deseados desaparezcan de la cabeza.

function nameof_mytheme_html_head_alter(&$head_elements) {
  unset($head_elements['system_meta_generator']);
  foreach ($head_elements as $key => $element) {
    if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'canonical') {
      unset($head_elements[$key]);
    }

    if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'shortlink') {
      unset($head_elements[$key]);
    }
  }
}

Sí, es la actitud de un carnicero hacia los enlaces canónicos, pero hasta que no surja mejor sulotion, esto es aún mejor.

POR ESO: necesita enlaces canónicos que se muestran SOLAMENTE en las páginas duplicadas, las que no son la versión preferida. Las páginas originales se deben dejar solas: ¡ninguna canónica debería mostrarse allí! Por eso sigo matando.

Levente
fuente