我正在尝试为 hook_form_alter 中的内容分类字段设置默认值,但无法确定必要的格式。我已经尝试过这个和许多变化:
foreach (element_children($form) as $child) {
// Set $default_value.
if ($form[$child]['tids']) {
// This, for Content Taxonomy fields, isn't working:
$form[$child]['tids']['#default_value'] = array('value' => $default_value);
dsm($form[$child]['tids']['#default_value']);
}
else {
// This, for other fields, is working:
$form[$child][0]['#default_value']['value'] = $default_value;
}
}
谁能告诉我我错过了什么?
编辑: 作为对 Henrik Opel 的回应(感谢您的参与),这是表单相关字段的打印输出,其中我对默认字段的更改已注释掉,显示了我试图影响的“#default_value”字段。
它还表明我正在使用的选项小部件是分层选择(这可能是一个因素吗?)。在上面代码中的 dsm() 中,默认值的更改被识别,但它们稍后不会被处理。
field_name_of_content_taxonomy_field (Array, 3 elements)
#tree (Boolean) TRUE
#weight (String, 1 characters ) 5
tids (Array, 7 elements)
#title (String, 10 characters ) Vocabulary_name
#type (String, 19 characters ) hierarchical_select
#weight (String, 1 characters ) 5
#config (Array, 15 elements)
// 15 elements here
#required (String, 1 characters ) 0
#description (String, 0 characters )
#default_value (Array, 0 elements)