Drupal 8 - 如何自定义搜索结果模板

时间:2016-12-16 10:07:40

标签: twig drupal-theming drupal-8

我有一个自定义内容类型,包含价格,产品摘要,产品图片等多个字段。有什么方法可以在搜索结果页面上单独访问这些字段吗?

我使用mytheme/item-list.html.twigkint(item.value)上打印了渲染的数组,这表明我只能像title一样分别访问urltype{{ item.value['#result'].url }} },{{ item.value['#result'].title }}。但是在渲染数组中看不到像product_imageproduct_summary等变量。

根据Twig模板建议,我需要覆盖的模板是search-result.html.twig。所以我将/core/themes/stable/templates/content/search-result.html.twig复制到我主题的文件夹中。但是,{{ snippet }}变量没有我想要访问的信息。

我完成了以下步骤来自定义结果输出:

  1. /admin/structure/types/manage/product/display Structure > Content Types > Product > Manage Display)。开启Search IndexSearch result highlight input
  2. enter image description here

    1. 导航至Search result highlight input标签并添加(启用)两个字段产品摘要和产品价格
    2. enter image description here

      1. 回到搜索结果但我仍然无法在渲染数组中看到这些变量。
      2. 有人可以告诉我完成上述工作的最佳方法吗?

1 个答案:

答案 0 :(得分:1)

@Subrata Sarkar有一个选择。首先,从drupal.org安装两个模块search_api和search_api_page模块

https://www.drupal.org/project/search_api

https://www.drupal.org/project/search_api_page  enter image description here

在搜索API中添加服务器和索引。 在索引中添加要在页面上显示的字段,并在所有配置索引所有数据之后。 enter image description here

在此之后创建并配置搜索页面。并选择查看模式选项并选择查看模式ex:搜索结果突出显示输入或搜索索引等。 enter image description here

希望您在搜索页面上获得所需的结果。有关更多信息, https://www.youtube.com/watch?v=dNilEVQu94I