การรับเลเบลของฟิลด์จากตัวแปร $ node


8

ฉันจะรับเลเบลของฟิลด์เฉพาะภายในโหนดใน Drupal 7 ได้อย่างไร

สาขาที่ฉันสนใจมีโครงสร้างดังต่อไปนี้:

    [field_text_question1] => อาร์เรย์ (
      [und] => อาร์เรย์ (
        [0] => อาร์เรย์ (
          [value] => พนักงานขาย
          [format] => 
          [safe_value] => พนักงานขาย
        ) 
      )
    )

คำตอบ:


13

วิธีที่ดีที่สุดคือใช้field_info_instance ($ entity_type, $ field_name, $ bundle_name)เพื่อรับข้อมูลเกี่ยวกับอินสแตนซ์ของฟิลด์ที่เฉพาะเจาะจง เลเบลของฟิลด์มีอยู่ในอาร์เรย์ที่ส่งคืนจากฟังก์ชันนั้น

 $info = field_info_instance('node','field_name','content_type_name');
 print $info['label'];

ฉันต้องใช้ field_name แต่ด้วยการแปลเอนทิตีสามารถฉันได้หรือไม่ ฉันลองแล้ว แต่มันไม่ทำงาน
Waseeem Alfarra

1

ฉันเชื่อว่าคุณกำลังดูภายใน$nodeตัวแปร มันไม่สามารถใช้ได้ที่นั่น เฉพาะค่าฟิลด์เท่านั้นที่จะถูกเก็บไว้ภายใน$nodeตัวแปรไม่ใช่การตั้งค่าฟิลด์ (เช่นป้ายกำกับ) หากคุณต้องการให้ฉลากดูใน$contentตัวแปร

$contentตัวแปรพร้อมใช้งานในMYTHEME_preprocess_node(&$variable)ฟังก์ชันเท็มเพลตธีม, node.tpl.phpและอื่น ๆ อีกสองสามตัว

หากไม่สามารถใช้ได้คุณสามารถโทร field_info_field($field_name)


0

วิธีที่ง่ายที่สุดในการพิมพ์เลเบลของโหนดคือ:

<?php print $content['field_your_field_name']['#title']; ?>

(ฉันได้ค้นพบมันหลังจากอาร์เรย์ print_r และอ็อบเจกต์ของ Drupal จำนวนมาก! ถ้ามันง่ายทำไมจะไม่อธิบายที่ใดก็ได้หรือทำไมถูกซ่อนไว้จนฉันไม่พบกลอุบายและผ่านเวลานานจาก คำถามต่อคำตอบนี้ ... )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.