【发布时间】:2023-03-20 01:01:01
【问题描述】:
我成功地突出显示了结果,但我面临的问题是代码复制了结果。例如,即使我只出现了一次“这个随机文本”,代码也会以一种奇怪的方式在摘录中插入重复的结果。卡在这里,请帮助。我附上了一个截图来帮助理解这个问题。您还可以从我的文本中看到,该句子现在没有意义,因为它没有正确查找和截断,因此只出现了包含匹配关键字的段落。
function wps_highlight_results($text){
if(is_search()){
$sr = get_query_var('s');
$keys = explode(" ",$sr);
$text = preg_replace('/('.implode('|', $keys) .')/iu', '<strong class="search-excerpt">'.$sr.'</strong>', $text);
}
return $text;
}
add_filter('the_excerpt', 'wps_highlight_results');
【问题讨论】:
-
$keys和$sr的实际值是多少?您似乎正在搜索$keys中的任何 个单词并将它们替换为$sr。这意味着如果$sr = 'In the beginning',那么您将用in the beginning替换in、the和beginning的所有实例。 -
您的
$sr值是多少? -
看来我在自相矛盾。我不想那样换。我试图让包含搜索文本的段落显示在摘录中,这样它就像这样“你,主,
in the beginning创造了地球,并用你自己的双手创造了天堂。” -
是的,我就是这么想的;看我的回答。
标签: php