Wie kann ich Meta-Tags neu anordnen?

4

Entsprechend den Anforderungen meines Kunden muss ich die Reihenfolge der Meta-Tags ändern. Die Anforderungen bestehen auch darin, einige der Meta-Tags auszublenden.

Die angeforderte Bestellung ähnelt der folgenden.

<Title>
<Description>
<keywords>

Gibt es ein Modul, um dies einfach zu erreichen? Muss ich die Dateien des Metatag-Moduls bearbeiten?

kiamlaluno
quelle
1
Können Sie sagen, warum der Kunde das will? Vielleicht gibt es ein Modul, das seine Bedürfnisse befriedigt, aber wenn ja, kann es nicht einfach unter "Head Reorder" gegoogelt werden.
Mołot
1
Korrigieren Sie mich, wenn ich falsch liege, aber ich sehe den Zweck einer solchen Nachbestellung einfach nicht. Wenn es Elemente im Körper sind, dann ist es für SEO-Zwecke, aber dennoch eine interessante Frage. Wenn Sie uns "warum" sagen könnten, wäre es noch interessanter.
Beebee
Es ist rein für SEO-Zwecke, er was ist, um sie zu entfernen, nur um Site-Daten auf der Site zu erhalten, die für Google leicht zu crawlen wäre.
1
Welche Quelle behauptet, dass die Reihenfolge der Meta-Tags für SEO relevant ist? Obwohl es keinen Grund gibt, die Frage selbst nicht zu beantworten, ist sie gültig genug, aber die Implementierung hier scheint nur eine große Zeitverschwendung zu sein. Wie es so oft heißt, das zu tun, was der Kunde gesagt hat.
Letharion

Antworten:

10

Um die Reihenfolge bestimmter Meta-Tags zu ändern, ist eine hook_html_head_alter()Implementierung in der template.php-Datei Ihres Themas die beste Wahl:

function MYTHEME_html_head_alter(&$head_elements) {
  // Combined with the devel module this line will tell you what elements you have to work with
  dpm($head_elements);

  // Any you can just alter the weight like this
  $head_elements['module:key']['#weight'] = -1000;
  $head_elements['another_module:another_key']['#weight'] = -999;
}
Clive
quelle
Es ist nur für 7 und höher gültig.
Mołot
@ Mołot Yep, wie das OP angefordert ...
Clive
1
Mein Fehler - es wurde nicht mit 7 markiert und ich habe es irgendwie im Titel verpasst. In beiden Fällen sagt Ihre Antwort nicht aus, wie Sie <title> nach oben stoßen sollen, also lasse ich meine an Ort und Stelle.
Mołot
@Clive danke für die Antwort, können Sie bitte erläutern, wie ich "['module: key']" "bekomme.
Sie müssen das $head_elementsArray überprüfen, um zu sehen, was darin enthalten ist ... die dpm()Methode durch das Devel-Modul ist am einfachsten, wie in den Kommentaren angegeben
Clive
6

HTML-Kopfelemente werden an zwei Stellen definiert.

Das erste, auf das Sie am einfachsten zugreifen können, ist das Ihres Themas html.tpl.php.

In Professional Theme sieht der relevante Teil so aus:

<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<?php print $head; ?>
<title><?php print $head_title; ?></title>
<?php print $styles; ?>
<?php print $scripts; ?>
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
</head>

Hier können Sie also den Titel vor andere Überschriften stellen. Es ist ratsam, CSS- und JS-Teile am Ende in der angegebenen Reihenfolge zu belassen.

Wenn Sie der Meinung sind, dass Sie die $headVariablen neu anordnen müssen ,

es wird schwieriger. Diese Variable wird vom Drupal-Kern generiert und dann von Modulen und Themen geändert. Gut, dass Ihr Thema das letzte ist, das darauf zugreift.

template.phpDefinieren Sie für Drupal 6 THEMENAME__preprocess_page (& $ variables) und ändern oder ordnen $variables['header']Sie es nach Ihren Wünschen . Denken Sie daran, dass andere Module beschädigt werden können, insbesondere wenn Sie Dinge entfernen. Nachbestellungen sind relativ sicher, das Hinzufügen ist normalerweise sicher, das Entfernen ist riskant.

Für Drupal 7 siehe Antwort von Clive . THEMENAME__preprocess_page (& $ variables) würde weiterhin funktionieren, aber 7 bietet eine direktere Lösung für Ihr Problem.

Mołot
quelle