Verwenden Sie die Eigenschaft #weight. Als drupal_get_html_head () verwendet drupal_render () die Meta - Tags zu machen, #weight verwendet wird , wenn sie zu machen.
Ich verwende den folgenden Code, um einen Test auf meiner lokalen Site durchzuführen. Es ist derselbe Code, den Sie verwenden, außer dass er keinen Verweis auf das Knotenobjekt enthält.
$og_title = array(
'#tag' => 'meta',
'#attributes' => array(
'property' => 'og:title',
'content' => "This is the title",
),
);
drupal_add_html_head($og_title, 'zujava_og_title');
$og_url = array(
'#tag' => 'meta',
'#attributes' => array(
'property' => 'og:url',
'content' => url('node/1', array('absolute' => TRUE)),
),
);
drupal_add_html_head($og_url, 'zujava_og_url');
dsm(drupal_get_html_head());
Die Ausgabe, die ich bekam, ist die folgende.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta property="og:url" content="http://tero.local/dr72/node/1" />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
<meta property="og:title" content="This is the title" />
Wie Sie sehen, wird das zuletzt hinzugefügte Tag zuerst angezeigt.
Ich führe dann den folgenden Code aus.
$og_title = array(
'#tag' => 'meta',
'#attributes' => array(
'property' => 'og:title',
'content' => "This is the title",
),
'#weight' => 10,
);
drupal_add_html_head($og_title, 'zujava_og_title');
$og_url = array(
'#tag' => 'meta',
'#attributes' => array(
'property' => 'og:url',
'content' => url('node/1', array('absolute' => TRUE)),
),
'#weight' => 200,
);
drupal_add_html_head($og_url, 'zujava_og_url');
dsm(drupal_get_html_head());
Die Ausgabe, die ich bekam, ist die folgende.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
<meta property="og:title" content="This is the title" />
<meta property="og:url" content="http://tero.local/dr72/node/1" />
Wie Sie sehen, wurde die Reihenfolge der Meta-Tags geändert. Die aus dem Code hinzugefügten Meta-Tags werden nach den aus Drupal hinzugefügten Standard-Meta-Tags angezeigt.
_drupal_default_html_head () (die Funktion, die die Standard-Metatags zurückgibt) verwendet #weight für das Metatag "Content-Type".
$elements['system_meta_content_type'] = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'http-equiv' => 'Content-Type',
'content' => 'text/html; charset=utf-8',
),
// Security: This always has to be output first.
'#weight' => -1000,
);
drupal_render()
, habe ich versucht festzustellen, ob #weight verwendet wurde, da es für Formularelemente verwendet wird, die über dieselbe Funktion gerendert werden. In der Dokumentation zudrupal_render()
heißt es: "Elemente werden mit uasort () intern sortiert."