ใช้คุณสมบัติ #weight เนื่องจากdrupal_get_html_head ()ใช้drupal_render ()เพื่อแสดงเมตาแท็กจะใช้ #weight เมื่อแสดงผล
ฉันใช้รหัสต่อไปนี้เพื่อทำการทดสอบในไซต์ท้องถิ่นของฉัน เป็นรหัสเดียวกับที่คุณใช้ยกเว้นว่าไม่มีการอ้างอิงถึงวัตถุโหนด
$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());
ผลลัพธ์ที่ฉันได้รับเป็นหนึ่งดังต่อไปนี้
<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" />
ตามที่คุณเห็นแท็กที่เพิ่มล่าสุดคือแท็กแรกที่ปรากฏ
ฉันเรียกใช้รหัสต่อไปนี้
$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());
ผลลัพธ์ที่ฉันได้รับเป็นหนึ่งดังต่อไปนี้
<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" />
อย่างที่คุณเห็นลำดับของเมตาแท็กนั้นเปลี่ยนไป เมตาแท็กที่เพิ่มจากรหัสปรากฏขึ้นหลังจากเมตาแท็กเริ่มต้นที่เพิ่มจาก Drupal
_drupal_default_html_head () (ฟังก์ชันที่ส่งกลับเมตาแท็กเริ่มต้น) ใช้ #weight สำหรับเมตาแท็ก "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,
);