我正在尝试让Drupal输出具有特定类名的div标签中特定内容类型的主体。
首先,我尝试覆盖node.tpl.php,但我发现这里的$ content变量已包含body以及其他自定义cck字段。而我正在努力做的就是将身体与其他领域分开。
之后我查看了content-field.tpl.php,发现它仅针对自定义cck字段执行。所以也不适合我。
那么..如何主题一个节点体字段?
答案 0 :(得分:2)
首先致电
print_r($node);
这是您的节点对象包含的内容 - 您可以直接使用其任何成员,而不仅仅是打印内容。分析这个,你就会知道该怎么称呼;)
如果是正文,可以通过以下方式访问无格式内容:
$node->content['body']['#value']
对于其他字段,您可以:
$node->field_name[0]['view']
(其中[0]是数组中项目的索引 - 当您可以上传许多图片时对ImageField很有用。)
例如,这是我node-event.tpl.php
的内容,显示有关事件的详细信息:
<div class="event clear-block">
<?php
$class = (convert_datetime($node->field_event_date[0]['value']) < time()) ? 'past' : 'future';
echo "<h3 class='header'>When?</h3><p class='$class'>".$node->field_event_date[0]['view']."</p>";
echo "<h3 class='header'>Where?</h3><p>".$node->field_event_place[0]['view']."</p>";
echo "<h3 class='header'>What?</h3>".$node->content['body']['#value'];
echo "<h3 class='header'>How much?</h3><p>".$node->field_event_price[0]['view']."</p>";
echo "<h3 class='header'>How to participate?</h3>".$node->field_event_subscribe[0]['view'];
?>
</div>
答案 1 :(得分:1)
答案 2 :(得分:0)
如果您需要非常灵活,对我来说最好的方法是转到此页面:
管理员/内容/节点型/ [ContentType的] /显示/基本
并将所有其他字段设置为“隐藏”。
然后,$content
变量将仅包含body字段。
缺点是您需要逐个显示所有其他字段。 CCK通过为每个字段提供完全呈现的变量来提供一种简单的方法
print $field_FIELDNAME_rendered;
使用它,您可以轻松自定义内容类型的输出。