it-swarm-es.com

¿Cómo eliminar ciertas metaetiquetas?

¿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?

17
user332

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 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.

11
Berdir

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>';
    // */
}
5
Fleshgrinder

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í! Es por eso que todavía carnicero.

4
Levente