我对此一无所知,所以我希望这里有人能指出我正确的方向。我有一个名为portfolio_item 的内容类型,其中包含一个名为field_portfolio_description 的文本字段。我正在尝试在不使用视图的情况下打印该字段存在的每个值的列表。这是我的 template.php 文件中的 preprocess_page 函数:
function blocks_preprocess_page(&$vars, $hook) {
$node = menu_get_object();
if ($node->type == 'portfolio_item') {
$portfolios = field_get_items('node', $node, 'field_portfolio_description');
$items = array();
foreach ($portfolios as $folio) {
$items['data'] = $folio['value'];
}
$vars['description'] = theme('item_list', array('items' => $items));
}
}
最后我试图在我的页面模板上调用它,如下所示:
<?php print render($description); ?>
我尝试了几种不同的变体都无济于事。任何帮助/建议将不胜感激。
更新:好吧,我终于得到了一些调试结果。我收到以下错误:注意:尝试在 blocks_preprocess_page() 中获取非对象的属性(/sites/all/themes/blocks/template.php 的第 24 行),这是第 24 行:
if ($node->type == 'portfolio_item') {
Portfolio_item 是内容类型的机器名称,所以这不是问题。
更新 2:好的,所以我已经将函数一直剥离到 $node = menu_get_object(); 行并执行了 var_dump(dpm 不工作)并发现非对象错误导致在访问页面时,portfolio_item 不存在于输出中。唯一存在的投资组合项目是在访问实际投资组合项目时。
因此,我会以完全错误的方式来解决这个问题。Views 似乎也不允许我显示该字段中项目的简单列表。
稍后我可能会重新讨论这个问题,如果我找到解决方案,我一定会发布最终代码。再次,如果其他人有想法,我愿意尝试。再次感谢那些插话的人。