Wie entferne ich bestimmte Meta-Tags?

18

Wie kann ich diese Tags von meinen Seiten in Drupal 7 entfernen?

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

Update : Ich habe den Code für template.php, der den Generator und die kanonischen Tags entfernt.

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

Kann jemand etwas hinzufügen, um das Shortlink-Tag zu entfernen?

Pierre.Vriens
quelle
1
Alles sieht gut aus, aber warum sollte man Canonical rausnehmen? Das ist eigentlich hilfreich.

Antworten:

11

Dies wird in html.tpl.php in der Variablen $ head angezeigt . $ head wird mit drupal_get_html_head () zu den Variablen in template_process_html hinzugefügt . In dieser Funktion können Sie sehen, dass hook_html_head_alter () aufgerufen wird.

Dort können Sie diese entfernen.

Beachten Sie jedoch, dass diese Links für die Suchmaschinenoptimierung wichtig sein können, um zu vermeiden, dass eine Suchmaschine den Eindruck hat, dass Sie doppelten Inhalt auf Ihrer Website haben, wenn beispielsweise ein Knoten über node / nid und den Alias ​​verfügbar ist.

Berdir
quelle
hmm ich finde es aber kann es immer noch nicht entfernen :) Ich denke ich sollte bald PHP lernen :) Ich finde Code, der zu template.php (in template) hinzugefügt werden kann und den Code entferne "Generator" -Zeile. function program_html_head_alter (& $ head_elements) {unset ($ head_elements ['system_meta_generator']); }
aber ich habe noch Problem mit 2 zusätzlichen Linien, die ich entfernen muss. Es ist nicht gut für SEO, wenn Sie eine benutzerdefinierte Homepage haben und eine kanonische URL nicht für die Hauptdomain nur für die Unterseite angeben ... das gleiche gilt für den Kurzlink - warum jemand sehen kann, dass der Artikel eine zusätzliche Adresse mit der Idee /node/...dumm hinzuzufügen hat diese Zeilen zu d7
Wenn ich also eine neue D7-Installation mit sauberen URLs und Pathauto habe, wird der kanonische URL-Link automatisch festgelegt.
Andy
Sollte ja sein.
Berdir
5

Ich benutze die folgende Funktion in meiner template.php-Datei:

/**
 * 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>';
    // */
}
Fleischwolf
quelle
Dies hat bei mir nicht funktioniert - 'metatag_canonicalund 'metatag_shortlinkexistiert nicht als Index von $head_elements(dies ist in Drupal 7). Die Antwort von @Levente hat gut funktioniert.
4

Ich habe auch den Shortlink gelöst und deinen Code modifiziert.

Jemand könnte es richtig aufräumen, weil ich nicht weiß, wie ich es richtig ausdrücken soll, und auch nicht, ob es auf diese Weise Nebenwirkungen hat oder nicht. Dadurch verschwinden die unerwünschten Verknüpfungen jedoch aus dem Kopf.

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

Ja, es ist die Haltung eines Metzgers gegenüber kanonischen Verbindungen, aber bis keine bessere Stimmung aufkommt, ist dies immer noch besser.

Das ist der Grund: Sie benötigen nur kanonische Links auf den Duplikatseiten, die nicht die bevorzugte Version sind. Die Originalseiten sollten in Ruhe gelassen werden: Es sollte keine kanonische Version angezeigt werden! Deshalb schlachte ich immer noch herum.

Levente
quelle