默认搜索wordpress并不显示搜索查询中所有搜索结果的关键字。例如:如果搜索关键字属于第二段,而我只显示第一段的有限字符,则不显示该关键字。更准确地说,这是一个例子。我有一个包含以下内容的页面:
这不过是个考验。这只是一个例子。
在搜索页面中,我调用了循环
<?php
while(have_posts() ): the_post();
echo substr(get_the_content(), 0, 10);
endwhile;
?>现在,当我搜索关键字“示例”时,文章会显示在搜索结果中,但是由于只显示了前10个字符,所以关键字没有显示。我限制在我的网站200个字符,我想要的是显示一两个句子与关键字突出显示在它。
发布于 2016-06-22 05:12:31
尝尝这个
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*?匹配关键字之前的任何单词字符(尽可能少),并在关键字之后匹配任何单词字符。
对于Unicode支持,请使用u标志和\p{L},而不是\w。
preg_replace("/\p{L}*?".preg_quote($keyword)."\p{L}*/ui", "<b>$0</b>", $str)https://stackoverflow.com/questions/37958898
复制相似问题