我有一个词汇类别,里面有四个术语.我想要做的是,如果内容被标记为一个终端,特别是说"term1",将url生成为word1/[node:title],而所有其他标签只是标准的url格式.
如果我想要URL中的术语显然id使用模式替换但我想要使用另一个单词如果使用特定标签
我有一个Drupal 8内容实体,与一个允许多个值的分类术语相关。我想查询实体并获取仅包含我在查询中使用的术语的内容。问题是我找不到一种方法来查询具有多个分类术语的实体并获取与它们相关的内容。
我的内容实体(节点束)称为“鸡尾酒”,除其他外,还有一个实体参考字段,称为“ field_ingredients”,该字段与分类词汇“成分”有关。我想获得一个实体,该实体具有例如2种具有分类法ID的成分:40和35。
$query = \Drupal::entityQuery('node');
$query->condition('type', 'cocktails');
$query->condition('field_ingredients.entity.tid', 40);
$query->condition('field_ingredients.entity.tid', 35);
$node_ids = $query->execute();
Run Code Online (Sandbox Code Playgroud)
$ node_ids为0
还有这个:
$query = \Drupal::entityQuery('node');
$query->condition('type', 'cocktails');
$query->condition('field_ingredients.entity.tid', array(40, 35), 'IN');
$node_ids = $query->execute();
Run Code Online (Sandbox Code Playgroud)
$ node_ids为3,它返回具有两个分类法ID(或逻辑)之一的节点ID,
正确的答案应该是一个节点ID,这是与两个分类法ID(包含两种成分的混合物)相关的节点
我有一个带分类法的Content-Type.它是一个选择列表,所以它只能有一个分类 - 至少是那个词汇表.现在我需要构建一个列出具有相同分类的所有节点的视图.
认为这不会太难,因为它听起来很基本.但我无法让它发挥作用.有任何想法吗?我正试图避免为此编写模块.
在Drupal中添加分类术语时,它会重定向回自身以添加另一个术语.有没有办法压倒这个?
我到目前为止尝试过:
•将?destination = _添加到链接到/ add/term/page的页面
•尝试hook_taxonomy:
function modulename_taxonomy($op, $type, $array = NULL) {
if ($type == 'term' && ($op == 'insert' || $op == 'update') && $array['parent'][39] == 39) {
drupal_goto('page.html');
}
}
Run Code Online (Sandbox Code Playgroud)
如果不是drupal_goto()我把die('Here');它输出,但是drupal_goto()不起作用?
在创建分类术语时,有一个名为"术语描述文本区域"的自定义描述框.有没有办法删除它?
我启用了分类法菜单模块,并根据我的词汇表术语创建了自定义视图.但是,分类菜单术语默认位于以下结构[taxonomy_category] / [term-name]并链接到默认分类视图.
如何覆盖默认分类术语链接以链接到我的视图页面?我想将分类术语链接到此视图页面:products/term_id.我已经下载了分类显示模块,但要么我不知道如何正确配置它或它不起作用....
任何人,谁知道如何更改分类术语的链接?
谢谢!
我正在尝试获取分配给分类法的自定义字段。我试过这个:
$vid = 'zeme';
$terms =\Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree($vid);
Run Code Online (Sandbox Code Playgroud)
$terms 现在存储名为“zeme”的词汇表中的所有术语。问题是当我打印这个变量时,它没有显示我需要获取的自定义字段。知道如何获得此自定义字段吗?我的代码如下所示:
$vid = 'zeme';
$terms =\Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree($vid);
foreach ($terms as $term) {
$term_data[] = array(
'id' => $term->tid,
'name' => $term->name
);
}
Run Code Online (Sandbox Code Playgroud) 我的分类法设置类似于:
Parent Term 1
Child 1.1
Child 1.2
Parent Term 2
Child 2.1
Child 2.2
Run Code Online (Sandbox Code Playgroud)
如何将某种内容类型限制为某个术语?
例如,我想强制"新闻项目"仅在"父项2"中,以便在内容创建页面上只有分类术语出现在分类选择项中?
嗨
假设我有一个名为"product"的术语名称,术语id是"123",我如何使用术语名称"product"来获得术语id"123"?
谢谢
我有一个简单术语的分类词汇表(没有父母,没有孩子),有时几个术语按"假"父母分组.为何假?因为没有任何东西真正与这个父亲本身相关联.
例:

我有一个视图,我允许用户搜索与术语相关的内容.我使用自动完成小部件公开了分类过滤器,因为有很多术语.问题是,如果用户想要获得与父术语的所有子项相关联的所有内容,他必须写下用逗号分隔的每个孩子:CCI BW,CCI CONNECT,CCI DE WALLONIE ....等等
我想让他只搜索CCI并为孩子们取得所有结果.因为现在,它没有发回任何结果.

我希望它足够清楚.如果没有,我会尽力做得更好.提前致谢.