当前位置: 首页 > 编程笔记 >

Drupal 9:使用分类术语创建相关的内容视图块

澹台文博
2023-03-14
本文向大家介绍Drupal 9:使用分类术语创建相关的内容视图块,包括了Drupal 9:使用分类术语创建相关的内容视图块的使用技巧和注意事项,需要的朋友参考一下

在过去的几年中,当我在此站点上撰写文章时,我一直在对其进行标记。这种标记主要是为了将帖子与该单词所标记的其他帖子的汇总列表联系在一起。最近,我想知道是否可以使用这些标签在每篇文章下方显示相关内容。过去,我一直在客户网站上使用此功能,但它要么归结为手动策划的列表,要么是某种复杂的内容分析和Solr搜索。

碰巧的是,使用Views可以很容易地做到这一点,尽管付出了一些努力才能达到我想要的效果。我正在写下这些说明,以帮助我记住过去的工作方式,并允许您设置相同的内容(如果需要)。

在某些背景下,此站点的结构由Article内容类型组成,该类型具有附加到其上的名为field_tags的字段 。此字段是一个免费标签字段,可让我在编写帖子时为帖子添加标签,并可能在需要时创建新标签。经过十多年的写作,创建新标签并不会经常发生,但是至少我可以选择这种方法。当前大约有300个唯一标签,尽管其中大多数是PHP或Drupal。

使用此设置,我通过创建一个视图创建了相关的内容块。

使用内容数据类型创建一个新视图。您可以使用内置的“视图”向导来创建一个块,其中包含最新发布的5个项目。这将为您设置一个非常标准的视图。

相关内容是通过上下文过滤器控制的,但是我们需要首先添加一个过滤器。相关内容块旨在显示其他可能感兴趣的文章。因此,我们需要添加一个上下文过滤器,该过滤器将隐藏正在查看的当前文章。毕竟,在相关内容列表中显示当前文章是毫无意义的。

内容类别的ID字段上添加上下文过滤器。设置过滤器以提供URL中内容ID的默认值。这将自动将当前页面传递到上下文过滤器。

在此面板的底部(在“更多”区域中),选中“排除”复选框,以防止当前节点包含在相关的内容结果中。

单击面板底部的“应用”以保存此上下文过滤器。

接下来,创建另一个上下文过滤器,这次使用“内容”类别中的“ 具有分类术语ID”字段。设置过滤器值以提供默认值,然后选中“从节点页面加载默认过滤器”,这对于相关的分类法块很有用。”。作为旁注,当我在进行研究时发现此复选框时,我知道我的方向正确为此功能。

在“多值处理”部分中,选择“过滤到共享任何条件的项目”。这些选项将告诉Views从当前页面中提取分类法术语,并使用它们来查找包含任何相同项目的任何页面。

选中减少重复项复选框也是一个好主意,因为这将防止同一相关项目页面被多次显示。此复选框确实带有对其的描述,因此您也需要对此做清楚说明。本质上,您需要确保标记的基数大于1,以使其正常工作。由于我的文章标签是无限的,所以这不是问题,但是也警告不要添加太多标签,因为这可能会减慢速度。我从来没有添加超过3-4个标签,因此我认为这已经足够安全了。

在面板底部的“更多”部分中,单击“允许多个值” 复选框。单击“多个值”复选框意味着视图可以将大量术语加在一起以查找结果。请注意,“允许多个过滤器值一起使用”的另一个选项与上面的“减少重复项”设置不兼容。

单击面板底部的“应用”以保存此上下文过滤器。

您的上下文过滤器区域现在应如下所示。

视图中的其他所有内容几乎都由您决定。结果的格式或排序顺序完全取决于您。我建议确保确保基于标签的缓存已启用(它在新的视图中)。

保存视图后,最后一步就是将代码块添加到文章页面。这是通过常规块管理页面完成的。我不会在此处发布屏幕截图,因为您可以在页面底部看到该屏幕截图。我仍然在处理不同的排序顺序和结果格式,但是到目前为止,我对结果还是很满意的。该列表应显示带有“ Drupal”甚至“ views”标签的其他文章。

 类似资料:
  • 规范、文档和对象模型等都使用特定的术语来表述。 IdentityServer IdentityServer 是一个 OpenID Connect 提供程序 —— 它实现了OpenID Connect 和 OAuth2 协议。 对于相同的角色,不同的文献将使用不同的术语 —— 你可能也发现了安全令牌服务(Security Token Service),身份提供程序(Identity Provider

  • 本文向大家介绍在Django中创建URLconf相关的通用视图的方法,包括了在Django中创建URLconf相关的通用视图的方法的使用技巧和注意事项,需要的朋友参考一下 抽取出我们代码中共性的东西是一个很好的编程习惯。 比如,像以下的两个Python函数: 我们可以把问候语提取出来变成一个参数: 通过使用额外的URLconf参数,你可以把同样的思想应用到Django的视图中。 了解这个以后,你可

  • 通过该接口可以创建视频分类,地址为: http://spark.bokecc.com/api/category/create 需要传递以下参数: 参数 说明 userid 用户id,不可为空 name 分类名称,不可为空 super_categoryid 父分类id,若为空,创建一级分类 format 返回格式,包括xml和json 返回数据category包含如下字段: 参数 说明 id 分类I

  • 有几个Django 的内建视图在编写视图 中讲述,文档的其它地方也会有所讲述。 开发环境中的文件服务器 static.serve(request, path, document_root, show_indexes=False) 在本地的开发环境中,除了你的项目中的静态文件,可能还有一些文件,出于方便,你希望让Django 来作为服务器。serve() 视图可以用来作为任意目录的服务器。(该视图不

  • 这产生了下面的堆栈跟踪 [ERROR]未能在项目上执行目标org.liquiBase:liquiBase-maven-plugin:3.4.1:rollback(default-cli)generic:错误设置或运行liquiBase:liquiBase.exception.rollbackimpossibleException:没有与liquiBase.change.core.rawsqlcha

  • 视图概述 视图作为MVC模式中的终端环节,在web编程中负责dom结构的展示。grace 使用 php作为“天然模板“,您不必再去学习枯燥无聊的模板语法,系统更不必浪费资源去完成复杂的解析工作! 视图文件创建及命名规则 视图文件命名 : 1、控制器名称_方法名称.php //此种命名系统会进行自动展示 2、视图名称.php //需要手动调用 视图文件位置 : /分组文件夹/views/对应视图文件