如何打印节点的主体?[关闭]


11

我正在努力研究如何在页面上打印节点主体。

我通常使用这样的东西,print $node->field_manufacturer[0]['view'];但是我不确定如何打印节点的主体。

我该如何实现?

Answers:


3

您可以通过编写以下命令查看节点的整体结构和内容:

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

然后选择合适的方式。

要打印节点主体,应使用$node->content['body']['#value']


我已经尝试过了。它显示所有信息。特别是我创建的自定义字段。但是我不确定如何打印主体(始终存在的字段)。
山姆·沃伦

1
我可以回答我自己的问题,但有一些限制阻止我:#这对我有用:print $ node-> content ['body'] ['#value'];
山姆·沃伦

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'])?>

你好,欢迎光临。仅代码答案不是最佳答案。您能否解释一下此代码段应如何准确地回答OP问题?
Mołot

render通常会在.tpl.php模板内部使用,以使用渲染数组中的布局信息来格式化元素,请参见例如eryery.com/dgd7/advanced-theming/render
Maine

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']; ?>

刚刚尝试过。没有错误出现,但除了“>”之外,没有任何内容。知道是什么原因引起的吗?
山姆·沃伦

0

也许有点晚了,但是如果您正在使用Drupal 6,请尝试以下操作。

     <?php print $node->content['body']['#value'] ?>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.