首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅显示实体引用字段中的分类法父级。

问仅显示实体引用字段中的分类法父级。
EN

Drupal用户
提问于 2020-06-10 13:36:57
回答 2查看 656关注 0票数 0

是否有一个分类法实体引用字段格式化程序仅显示来自层次分类法元素的分类法父级?否则,在实体引用字段中,只能显示父级分类法术语的方法是什么呢?

EN

回答 2

Drupal用户

发布于 2020-06-10 13:49:56

为分类法术语创建自定义视图模式,并使用自定义视图模式将分类法术语显示为“呈现实体”。

然后为该特殊视图模式创建一个Twig模板:假设新创建的视图模式为onlyparents,则创建一个模板taxonomy-term--onlyparents.html.twig

没有像“父母”这样的字段,因此也没有预先构建的字段格式化程序。要得到父母,你需要做一些手动的预处理,比如

代码语言:javascript
复制
function mymodule_preprocess_taxonomy_term(&$variables) {
  $term = $variables['elements'];
  $parents = \Drupal::entityTypeManager()
    ->getStorage('taxonomy_term')
    ->loadAllParents($term->id());
  $variables['parents'] = $parents;
}

在Twig,你可以做这样的事情

代码语言:javascript
复制
{% for parent in parents %}
  {{ parent.label }}
{% endfor %}
票数 1
EN

Drupal用户

发布于 2020-06-23 14:18:48

受Hudri回答的启发,我有:

  • 创建了一个分类显示模式taxo_parent_only
  • 使用该显示模式显示我的节点实体引用的字段显示
  • 将建议和预处理添加到我的.theme中
  • 添加一个特定的模板函数my_theme_theme_suggestions_taxonomy_term_alter(&$suggestions,$vars,$hook) { $term = $vars;$sanitized_view_mode = strtr($vars,'.','_');$suggestions[] = 'taxonomy_term__‘。$term->bundle()'__‘.$sanitized_view_mode;$suggestions[] = 'taxonomy_term__‘。$term->id()'__‘.$sanitized_view_mode;$suggestions[] = 'taxonomy_term__‘。函数my_theme_doc_preprocess_taxonomy_term(&$variables) { $suggestions;}如果项是树*/ $term =$variables的秩1;$storage = \Drupal::service('entity_type.manager') ->getStorage('taxonomy_term');$parents =$存储->加载父母($ term ->id();if(count($parents)===0){ $variables= TRUE;}}

taxonomy-term--myvocab--taxo-parent-only.html.twig

代码语言:javascript
复制
{% if is_taxo_parent is defined %}
    
      {{ title_prefix }}
      {% if name and not page %}
        {{ name }}
      {% endif %}
      {{ title_suffix }}
      {{ content }}
    
{% endif %}
票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/294437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档