我试图从我网站上的节点模板访问节点数组中的数据。当我登录这一切都很好;然而,只要我注销数组结构的变化。经过一番调查,我发现这是因为每当我注销时都会出现'und'数组。
我尝试了很多解决方案,如使用[$node->language]
,试图通过#items
数组访问数据,并使用field_get_items
无效。我能让它在这两种情况下工作的唯一方法是检查'und'是否存在,我发现只是检索一个简单的布尔值或其他数据点有点笨拙。
试试这样做。我不确定您究竟要访问什么,但这将根据所呈现的节点的语言获得字段值。
获取节点的语言:
$node_language = field_language("node", $form["#node"], "field_YOUR_FIELD");
默认字段值:
$field_value = $form["field_YOUR_FIELD"][$node_language][0]["CHECK_ARRAY_FOR_VALUE"]["#default_value"];
For Saved Field Value:
$field_value = $form["#node"]->field_YOUR_FIELD[$node_language][0]["CHECK_ARRAY_FOR_VALUE"];
对于我来说,这种行为发生在节点模板中的某些字段(不是全部),当我在page.tpl.php(!)中出于某些测试目的使用
时 dsm($node);
(使用Devel 7.x-1.5模块)。如果我把这一行去掉,它又像预期的那样工作了