You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Drupal 10:如何在Paragraphs模块的paragraph.html.twig中检查内容类型?

在Drupal 10 Paragraphs模板中检查内容类型的方法
  • 直接通过Paragraph父实体获取节点内容类型
    Paragraph是依附于父实体的字段组件,你可以通过paragraph.parentEntity访问它所属的节点,再获取内容类型标识。修改你的逻辑代码如下:

    {% if paragraph.parentEntity.bundle == 'universal_page' %}
      {# 执行X操作 #}
    {% else %}
      {# 执行Y操作 #}
    {% endif %}
    

    若Paragraph可能被用于节点以外的实体(如媒体、用户),可以先判断父实体类型避免报错:

    {% if paragraph.parentEntity.entityTypeId == 'node' and paragraph.parentEntity.bundle == 'universal_page' %}
      {# 执行X操作 #}
    {% else %}
      {# 执行Y操作 #}
    {% endif %}
    
  • 通过主题预处理函数传递节点信息

    1. 在你的主题.theme文件中添加以下预处理代码,将节点的内容类型传递到Paragraph模板变量中:
      function YOUR_THEME_NAME_preprocess_paragraph(&$variables) {
        $paragraph = $variables['paragraph'];
        $parent_entity = $paragraph->getParentEntity();
        if ($parent_entity && $parent_entity->getEntityTypeId() == 'node') {
          $variables['node_bundle'] = $parent_entity->bundle();
        }
      }
      
      注意将YOUR_THEME_NAME替换为你的实际主题名称。
    2. 随后在paragraph.html.twig中直接使用变量判断:
      {% if node_bundle == 'universal_page' %}
        {# 执行X操作 #}
      {% else %}
        {# 执行Y操作 #}
      {% endif %}
      

内容的提问来源于stack exchange,提问作者User301276

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 14:12:33