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

Drupal 10.2.2搜索结果中如何在标题旁显示日期?

在Drupal 10.2.2的Search模块结果中添加日期(Twig实现)

完全可以通过Twig模板+主题预处理实现,步骤如下:

1. 准备搜索结果模板文件

Drupal默认的搜索结果模板是search-result.html.twig,你需要:

  • 从core/modules/search/templates/目录复制该文件到你的主题目录下的templates/search/文件夹(若没有search子文件夹,手动新建)。
  • 主题会优先加载自身目录下的模板文件,确保文件路径和命名正确。

2. 通过主题预处理传递日期变量

在你的主题.theme文件(比如mytheme.theme)中添加以下代码,将节点的创建/修改时间传递给Twig模板:

function mytheme_preprocess_search_result(&$variables) {
  $result = $variables['result'];
  // 仅处理节点类型的搜索结果
  if (isset($result['node']) && $result['node'] instanceof \Drupal\node\Entity\Node) {
    $node = $result['node'];
    // 格式化创建时间,可替换'medium'为站点已有的日期格式机器名(如'long')或自定义格式
    $variables['node_created'] = \Drupal::service('date.formatter')->format(
      $node->getCreatedTime(),
      'medium'
    );
    // 若需显示修改时间,替换为以下代码:
    // $variables['node_changed'] = \Drupal::service('date.formatter')->format(
    //   $node->getChangedTime(),
    //   'medium'
    // );
  }
}

3. 修改Twig模板添加日期显示

打开复制到主题目录的search-result.html.twig,找到标题所在的<h3>标签块,添加日期显示逻辑:

<h3{{ title_attributes }}>
  <a href="{{ url }}" rel="bookmark">{{ title }}</a>
  {% if node_created %}
    <span class="search-result-date">{{ node_created }}</span>
  {% endif %}
</h3>

如果用修改时间,将node_created替换为node_changed即可。

4. 美化日期样式(可选)

在主题的CSS文件中添加样式,调整日期的显示效果:

.search-result-date {
  font-size: 0.85em;
  color: #777;
  margin-left: 12px;
  font-weight: normal;
}

5. 清除站点缓存

完成操作后,进入Drupal后台配置 > 性能页面,点击"清除所有缓存",使新的模板和预处理代码生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:57:16