ฉันจะรับเลเบลของฟิลด์เฉพาะภายในโหนดใน Drupal 7 ได้อย่างไร
สาขาที่ฉันสนใจมีโครงสร้างดังต่อไปนี้:
[field_text_question1] => อาร์เรย์ ( [und] => อาร์เรย์ ( [0] => อาร์เรย์ ( [value] => พนักงานขาย [format] => [safe_value] => พนักงานขาย ) ) )
ฉันจะรับเลเบลของฟิลด์เฉพาะภายในโหนดใน Drupal 7 ได้อย่างไร
สาขาที่ฉันสนใจมีโครงสร้างดังต่อไปนี้:
[field_text_question1] => อาร์เรย์ ( [und] => อาร์เรย์ ( [0] => อาร์เรย์ ( [value] => พนักงานขาย [format] => [safe_value] => พนักงานขาย ) ) )
คำตอบ:
วิธีที่ดีที่สุดคือใช้field_info_instance ($ entity_type, $ field_name, $ bundle_name)เพื่อรับข้อมูลเกี่ยวกับอินสแตนซ์ของฟิลด์ที่เฉพาะเจาะจง เลเบลของฟิลด์มีอยู่ในอาร์เรย์ที่ส่งคืนจากฟังก์ชันนั้น
$info = field_info_instance('node','field_name','content_type_name');
print $info['label'];
ฉันเชื่อว่าคุณกำลังดูภายใน$node
ตัวแปร มันไม่สามารถใช้ได้ที่นั่น เฉพาะค่าฟิลด์เท่านั้นที่จะถูกเก็บไว้ภายใน$node
ตัวแปรไม่ใช่การตั้งค่าฟิลด์ (เช่นป้ายกำกับ) หากคุณต้องการให้ฉลากดูใน$content
ตัวแปร
$content
ตัวแปรพร้อมใช้งานในMYTHEME_preprocess_node(&$variable)
ฟังก์ชันเท็มเพลตธีม, node.tpl.php
และอื่น ๆ อีกสองสามตัว
หากไม่สามารถใช้ได้คุณสามารถโทร field_info_field($field_name)
วิธีที่ง่ายที่สุดในการพิมพ์เลเบลของโหนดคือ:
<?php print $content['field_your_field_name']['#title']; ?>
(ฉันได้ค้นพบมันหลังจากอาร์เรย์ print_r และอ็อบเจกต์ของ Drupal จำนวนมาก! ถ้ามันง่ายทำไมจะไม่อธิบายที่ใดก็ได้หรือทำไมถูกซ่อนไว้จนฉันไม่พบกลอุบายและผ่านเวลานานจาก คำถามต่อคำตอบนี้ ... )