ฉันจะพิมพ์เนื้อหาของโหนดได้อย่างไร [ปิด]


11

ฉันพยายามหาวิธีพิมพ์เนื้อหาของโหนดบนหน้าเว็บ

ปกติฉันจะใช้สิ่งนี้print $node->field_manufacturer[0]['view'];แต่ฉันไม่แน่ใจว่าจะพิมพ์เนื้อหาของโหนดได้อย่างไร

ฉันจะทำให้สำเร็จได้อย่างไร

คำตอบ:


3

คุณสามารถดูโครงสร้างทั้งหมดและเนื้อหาของโหนดโดยการเขียน:

<pre><?php print_r($node); ?></pre>

จากนั้นเลือกสิ่งที่เห็นสมควร

$node->content['body']['#value']หากต้องการพิมพ์ร่างกายโหนดคุณควรใช้


ฉันลองแล้ว มันนำข้อมูลทั้งหมดขึ้นมา ฟิลด์ที่กำหนดเองที่ฉันสร้างขึ้นโดยเฉพาะ แต่ฉันไม่แน่ใจว่าจะพิมพ์ร่างได้อย่างไร (ฟิลด์ที่มีเสมอ)
Sam Warren

1
ฉันต้องตอบคำถามของฉันเอง แต่มีข้อ จำกัด ที่จะหยุดฉัน: # สิ่งนี้ใช้ได้กับฉัน: พิมพ์ $ node-> content ['body'] ['# value'];
Sam Warren

16

สำหรับ Drupal 7 สไตล์ที่ดีกว่าคือการใช้ field_get_items เช่น:

<?php
  $body = field_get_items('node',$node, 'body');
  print $body[0]['value'];
?>

14

ลองทำสิ่งนี้กับ Drupal 7

<?php print render($content['body'])?>

สวัสดีและยินดีต้อนรับ. คำตอบที่ใช้รหัสเท่านั้นไม่ใช่คำตอบที่ดีที่สุด คุณช่วยอธิบายได้ว่าข้อมูลนี้ควรตอบปัญหา OPs อย่างไร
Mołot

renderโดยทั่วไปแล้วจะใช้ภายใน.tpl.phpเทมเพลตเพื่อจัดรูปแบบองค์ประกอบโดยใช้ข้อมูลเลย์เอาต์ในเรนเดอร์เรนเดอร์ดูตัวอย่างเช่นthemery.com/dgd7/advanced-theming/render
เมน

10

หาก$nodeเป็นวัตถุโหนดได้เช่นกับnode_load()ใน Drupal 7 $node->bodyนี้เป็นโครงสร้างของ

ภาพหน้าจอ

ภาษาที่ตั้งค่าสำหรับโหนดที่ฉันใช้ในหน้าจอเป็นภาษาอังกฤษและรูปแบบการป้อนข้อมูลเป็น HTML แบบเต็ม เท่าที่ฉันเห็นเนื้อหาของเนื้อหาจะอยู่ในดัชนี "und" ไม่ว่าจะตั้งค่าภาษาอะไรสำหรับโหนด

ใน Drupal 6 $node->bodyเป็นสตริง

หากคุณดำเนินการhook_nodeapi('view')(Drupal 6) หรือhook_node_view()(Drupal 7) เนื้อหาของร่างกายที่พบตามลำดับโดยมีและ$node->content['body']['#value']$node->content['body'][0]['#markup']

ภาพหน้าจอ



0

งานดังต่อไปนี้มักจะ:

<?php print $node->body['value']; ?>

แค่ลองดู ไม่มีข้อผิดพลาดปรากฏขึ้น แต่ไม่มีเนื้อหาใด ๆ เลยยกเว้น ">" ความคิดใด ๆ ที่อาจเป็นสาเหตุให้เกิดปัญหานี้
Sam Warren

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