以编程方式创建 drupal 节点并设置自定义 select 列表字段
Create drupal node programatically and set custom select list field
我有一个带有自定义字段的 Drupal 7 节点。我在为单个文本字段设置值时没有问题,但我不确定如何将我的 select 列表字段设置为该字段允许的键之一。
这是我尝试将 select 列表分配给 'pending' 键的代码。
$node->field_referee_status['und'][0]['tid'] = 'pending';
节点创建代码:
// CREATE NODE
$node = new stdClass;
$node->type = 'referee';
$node->title = 'Referee report for xx';
$node->uid = $user->uid;
$node->status = FALSE;
$node->field_referee_status['und'][0]['tid'] = 'pending';
$node->field_referee_id['und'][0]['value'] = 'test';
$node->field_testff['und'][0]['value'] = "testworked";
node_object_prepare($node);
node_save($node);
问题:有谁知道在以编程方式创建 Drupal 节点时将键值分配给自定义 select 列表字段的正确方法?
尝试增加
的 0(增量)
$node->field_referee_status['und'][0]['value'] = 'pending';
即$node->field_referee_status['und'][1]['value'] = 'approved';
这应该有效
改变
$node->field_referee_status['und'][0]['tid'] = 'pending';
至
$node->field_referee_status['und'][0]['value'] = 'pending';
而不是为 "$node->field_referee_status['und'][0]['tid']"
传递 "pending" 文本。请尝试在这里传递它的 tid。您可以使用以下函数获取 "pending" 术语。
语法:
taxonomy_get_term_by_name($name);
即
$term = taxonomy_get_term_by_name('pending');
$node->field_referee_status['und'][0]['tid'] = $term->tid;
我有一个带有自定义字段的 Drupal 7 节点。我在为单个文本字段设置值时没有问题,但我不确定如何将我的 select 列表字段设置为该字段允许的键之一。
这是我尝试将 select 列表分配给 'pending' 键的代码。
$node->field_referee_status['und'][0]['tid'] = 'pending';
节点创建代码:
// CREATE NODE
$node = new stdClass;
$node->type = 'referee';
$node->title = 'Referee report for xx';
$node->uid = $user->uid;
$node->status = FALSE;
$node->field_referee_status['und'][0]['tid'] = 'pending';
$node->field_referee_id['und'][0]['value'] = 'test';
$node->field_testff['und'][0]['value'] = "testworked";
node_object_prepare($node);
node_save($node);
问题:有谁知道在以编程方式创建 Drupal 节点时将键值分配给自定义 select 列表字段的正确方法?
尝试增加
的 0(增量)$node->field_referee_status['und'][0]['value'] = 'pending';
即$node->field_referee_status['und'][1]['value'] = 'approved';
这应该有效
改变
$node->field_referee_status['und'][0]['tid'] = 'pending';
至
$node->field_referee_status['und'][0]['value'] = 'pending';
而不是为 "$node->field_referee_status['und'][0]['tid']"
传递 "pending" 文本。请尝试在这里传递它的 tid。您可以使用以下函数获取 "pending" 术语。
语法:
taxonomy_get_term_by_name($name);
即
$term = taxonomy_get_term_by_name('pending');
$node->field_referee_status['und'][0]['tid'] = $term->tid;