我有模块,我想创建新的分类字段(如果不存在)并将其附加到内容类型。我通过导出字段找到了简单的方法,但只有在我安装模块时它才会起作用。我需要不时地自动创建它们。
所以到现在为止我可以创建词汇和分类术语:
$vocabulary = \Drupal\taxonomy\Entity\Vocabulary::load($vid);
if (!$vocabulary) {
$vocabulary = \Drupal\taxonomy\Entity\Vocabulary::create(array(
'vid' => $vid,
'machine_name' => $vid,
'name' => $name,
));
$vocabulary->save();
}
创建分类术语:(BTW是否有更好的方法来检查术语是否存在?taxonomy_term_load_multiple_by_name是旧的d7函数,但我无法找到其他方法)
if($terms = taxonomy_term_load_multiple_by_name($name, $vid))
{
$term = reset($terms);
}
else
{
$term = \Drupal\taxonomy\Entity\Term::create([
'name' => $name,
'vid' => $vid,
])->save();
}
节点实体仅用于检查字段定义,我无法找到创建/附加字段的任何可能性。我发现只创建了全新的字段和代码示例,但没有粘贴如何将字段附加到内容类型。