(wordpress)显示在搜索结果页面中突出显示搜索关键字的句子

时间:2016-06-22 05:00:25

标签: php wordpress

wordpress的默认搜索不会在搜索查询中显示所有搜索结果的关键字。例如:如果搜索关键字属于第二段,并且我只显示第一段的有限字符,则不显示关键字。更确切地说,这是一个例子。 我有一个内容包含以下内容的页面:

  

这仅仅是一个考验。这只是一个例子。

在搜索页面中,我调用了循环

<?php

    while(have_posts() ): the_post();
    echo substr(get_the_content(), 0, 10);
    endwhile;
?>

现在,当我搜索关键字&#34;示例&#34;时,帖子会显示在搜索结果中,但由于只显示前10个字符,因此关键字不会显示。我的网站限制为200个字符,我想要的是显示其中突出显示关键字的一两句话。

1 个答案:

答案 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)