wordpress的默认搜索不会在搜索查询中显示所有搜索结果的关键字。例如:如果搜索关键字属于第二段,并且我只显示第一段的有限字符,则不显示关键字。更确切地说,这是一个例子。 我有一个内容包含以下内容的页面:
这仅仅是一个考验。这只是一个例子。
在搜索页面中,我调用了循环
<?php
while(have_posts() ): the_post();
echo substr(get_the_content(), 0, 10);
endwhile;
?>
现在,当我搜索关键字&#34;示例&#34;时,帖子会显示在搜索结果中,但由于只显示前10个字符,因此关键字不会显示。我的网站限制为200个字符,我想要的是显示其中突出显示关键字的一两句话。
答案 0 :(得分:1)
试试这个
while(have_posts() ): the_post();
$str=substr(get_the_content(), 0, 10);
$keyword=$_REQUEST['s'];
echo preg_replace("/\w*?".preg_quote($keyword)."\w*/i", "<b>$0</b>", $str)
endwhile;
用于突出显示字符串中的单词
preg_replace("/\w*?$keyword\w*/i", "<b>$0</b>", $str)
\w*?
匹配关键字前的任何字词(尽可能少)和\w*
关键字后面的任何字词。
对于Unicode支持,请使用 u 标记和\p{L}
而不是\w
:
preg_replace("/\p{L}*?".preg_quote($keyword)."\p{L}*/ui", "<b>$0</b>", $str)