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

如何调整Drupal核心模块搜索页面的摘要长度?

调整Drupal核心搜索页面的摘要长度

以下是几种实用的实现方法,根据你的Drupal版本和开发习惯选择:

方法1:修改核心搜索配置(最简单)

Drupal核心搜索自带摘要长度配置项,直接调整即可:

  • 用Drush命令快速修改(替换300为你需要的字符数):
    drush config-set search.settings snippet_length 300
    
  • 或者手动编辑配置文件:找到sites/default/config/search.settings.yml,修改snippet_length的值为目标长度,保存后执行drush config-import生效。
  • 操作完成后清空缓存,搜索结果的摘要长度就会更新。

方法2:通过主题/模块钩子自定义

如果需要更灵活的控制(比如针对特定内容类型调整),可以在自定义主题或模块中添加预处理钩子:
在你的主题.theme文件或自定义模块.module文件中添加以下代码,替换YOUR_THEME_OR_MODULE为实际名称:

function YOUR_THEME_OR_MODULE_preprocess_search_result(&$variables) {
  // 仅针对节点类型的搜索结果
  $node = $variables['result']['node'] ?? NULL;
  if ($node && $node instanceof \Drupal\node\NodeInterface) {
    // 设置目标摘要长度,这里以300字符为例
    $target_length = 300;
    // 提取并处理正文内容,过滤HTML标签后截取长度
    $raw_content = strip_tags($node->body->value);
    $variables['snippet'] = \Drupal\Component\Utility\Xss::filterAdmin(
      substr($raw_content, 0, $target_length) . '...'
    );
  }
}

添加后清空缓存即可生效,这种方式可以针对不同内容类型、角色等设置不同的摘要长度。

方法3:使用Twig模板自定义

复制核心的搜索结果模板到你的主题,手动修改输出逻辑:

  1. 复制core/modules/search/templates/search-result.html.twig到你的主题templates目录下;
  2. 修改模板内容,替换原有snippet输出部分,比如:
{# 替换原有的snippet输出代码 #}
{% set longer_snippet = content.snippet|striptags|slice(0, 300) ~ '...' %}
<div class="search-snippet">{{ longer_snippet|raw }}</div>
  1. 清空缓存,主题会自动加载自定义模板,实现更长的摘要输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 02:49:57