Comment supprimer certaines balises META?

18

Comment puis-je supprimer ces balises de mes pages dans Drupal 7?

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

Mise à jour : J'ai le code de template.php, qui supprime le générateur et les balises canoniques.

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]); 
    }
  }
}

Quelqu'un peut-il ajouter quelque chose pour supprimer la balise de lien courte?

Pierre.Vriens
la source
1
Tout a l'air bien, mais pourquoi retirer canonique? C'est vraiment utile.

Réponses:

11

Ceci est affiché dans html.tpl.php dans la variable $ head. $ head est ajouté aux variables dans template_process_html en utilisant drupal_get_html_head () . Dans cette fonction, vous pouvez voir que hook_html_head_alter () est appelé.

Vous pouvez les supprimer.

Cependant, notez que ces liens peuvent être importants pour le référencement, pour éviter qu'un moteur de recherche pense que vous avez du contenu en double sur votre site, si par exemple un nœud est disponible via node / nid et l'alias.

Berdir
la source
hmm je le trouve mais je ne peux toujours pas le supprimer :) Je pense que je devrais bientôt apprendre php :) Je trouve du code qui peut être ajouté à template.php (dans le modèle) et le code supprime la ligne "Generator". function program_html_head_alter (& $ head_elements) {unset ($ head_elements ['system_meta_generator']); }
mais j'ai toujours un problème avec 2 lignes supplémentaires que je dois supprimer. Ce n'est pas bon pour seo si vous avez une page d'accueil personnalisée et une URL canonique ne donne pas le domaine principal uniquement pour la sous-page ... la même chose avec un lien court - pourquoi quelqu'un peut voir que l'article a une adresse supplémentaire avec /node/...stupide idée à ajouter ces lignes vers d7
Donc, si j'ai une nouvelle installation D7 avec des URL propres et pathauto, le lien URL canonique sera automatiquement défini?
Andy
Devrait l'être, oui.
Berdir
5

J'utilise la fonction suivante dans mon fichier 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>';
    // */
}
Broyeur de chair
la source
Cela n'a pas fonctionné pour moi - 'metatag_canonicalet 'metatag_shortlinkn'existe pas en tant qu'index de $head_elements(c'est dans Drupal 7). La réponse donnée par @Levente a bien fonctionné.
4

J'ai également résolu le raccourci, en modifiant votre code.

Quelqu'un pourrait le ranger correctement, parce que je ne sais pas comment le dire correctement, ni s'il a des effets secondaires de cette façon ou non. Cela fait cependant disparaître les liens indésirables de la tête.

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]);
    }
  }
}

Oui, c'est l'attitude d'un boucher envers les liens canoniques, mais jusqu'à ce qu'il n'y ait pas de meilleure émotion, c'est encore mieux.

C'EST POURQUOI: vous avez besoin de liens canoniques affichés UNIQUEMENT sur les pages en double, celles qui ne sont pas la version préférée. Les pages originales doivent être laissées seules: aucune canonique ne doit y être affichée! C'est pourquoi je bouge toujours.

Levente
la source