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

WordPress搜索结果高亮如何保留页面原有文本大小写且不修改内容

解决方案

你遇到的问题核心是str_ireplace的替换值固定为搜索词本身,会直接覆盖原文的大小写格式,改用preg_replace的反向引用功能即可保留原文本内容。

替换content-search.php中的原有代码

<?php 
// 先转义搜索词中的正则特殊字符,避免解析报错
$escaped_search = preg_quote( $s, '/' );
// 标题高亮替换,保留原文大小写
$title = preg_replace( "/{$escaped_search}/i", '<span class="search-instance">$0</span>', get_the_title() );
// 摘要高亮替换,保留原文大小写
$excerpt = preg_replace( "/{$escaped_search}/i", '<span class="search-instance">$0</span>', get_the_excerpt() );
?>
<?php echo $title; ?>   
<?php echo $excerpt; ?>

你原有CSS样式不需要做任何修改,可以直接沿用。

实现说明

  • 正则末尾的i修饰符:实现不区分大小写的匹配,和之前str_ireplace的匹配逻辑一致
  • 替换值中的$0:是正则的反向引用标记,会直接调用本次匹配到的原文内容,完全保留原有的大小写、拼写格式,不会被搜索词的格式覆盖
  • preg_quote函数:自动转义搜索词中的正则特殊字符(如. * + ?等),避免搜索特殊字符时出现正则解析错误
  • 未添加单词边界限制,支持部分匹配需求:比如搜索ENGAGE可以匹配到engagement中的对应片段,同时完整保留原词的后缀和大小写

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:39:05