Drupal8.7.6如何输出三级分类列表?

  用Drupal8.7.6开发网站的时候,经常会遇到这样的需求:“新闻动态”二级栏目下有“公司新闻、行业新闻”两个子栏目,左边为栏目名称,右边显示每个栏目对应的新闻列表。即:点击公司新闻,右边弹出公司新闻的列表内容;点击行业新闻,右边弹出行业新闻的列表内容。
 
  这个功能比较常见,涉及分类(taxonomy)、内容实体(Commenttypes)、视图(VIEWS)、区块布局(Blocklayout)、模板等功能的配合使用,实现起来稍微繁琐些。具体思路如下:
 
  一、组织分类列表
 
  新建一个新闻动态的分类:news_taxonomy,并添加“公司新闻、行业新闻”两个术语,用于在内容类型中区别不同的新闻列表。
 
  二、新建内容类型
 
  新闻的内容类型news,必须包含taxonomyterm字段并关联第一步的新闻动态分类:news_taxonomy,显示方式设置为下拉即可;然后,在内容类型中上传文章等内容时,就可以选择公司新闻和行业新闻了。
 
  三、输出分类列表
 
  分类列表的输出,包括两部分,一是分类名称,即左边的公司新闻、行业新闻名称;二是分类内容,即右边的公司新闻与行业新闻标题、日期、描述等信息。
 
  1.分类名称的输出
 
  新建一个分类名称的视图区块:news_taxonomy_title,当然要选择taxonomy实体;然后把第二步的新闻动态字段:news_taxonomy添加进来;最后,覆写该字体,用变量输出即可。
 
  2.经过上一步的输出,再加上区域的设置、变量的引用,模板的命名,就可以在前端显示分类列表了;根据分类列表的名子,可以新建公司新闻、行业新闻两个模板;然后,分别新建两个视图区块,通过过滤的功能,分别从第二步的内容类型中输出公司新闻、行业新闻两个列表的内容。
 
  四、模板的命名
 
  根据suggestion建议,分别新建公司新闻、行业新闻两个模板,用于承载两个子页面。
 
  五、区域的定义
 
  在info.yml中定义公司新闻、行业新闻两个区域:company、insdustry。
 
  六、变量的输出
 
  分别在公司新闻、行业新闻页面中通过{{page.company}}、{{page.insdustry}}输出定义的视图列表。
 
  基本思路是这个样子,实现起来一点也不轻松。举一反三,如果右边是静态内容,如关于我们、联系我们等等,同样可以使用该方法来实现。