在搜索词周围裁剪搜索结果

时间:2017-07-22 作者:ksqInFlightM

我想把我的搜索结果页面缩小到突出显示的搜索词前20个单词,后20个单词。我得到了准确的搜索结果,搜索词正在突出显示。我试过用wp_trim_words();例如:

            $trimmed_content = wp_trim_words( $searchresults, 25, NULL );
              echo $trimmed_content;
但到目前为止,我还无法得到,我想要的是一个搜索结果,在突出显示的搜索词前后修剪20个词。我的搜索。php的页面代码为:

    <div class="searchresultsbox"> 
    <?php if(have_posts()):while (have_posts()):the_post();?>
    <a href="<?php the_permalink(); ?>">
    <h3 class="title-heading"><?php the_title(); ?></h3>         
    </a>    
    <?php 
      $searchresults = $post->post_content;
      $highlightword = get_search_query();
      $searchresults = str_replace($highlightword, 
      \'<span style="background-color:#ffff00;">\'.$highlightword.\'</span>\',
      $searchresults);

      echo $searchresults;

      endwhile;
      else: echo "No matching result found";
      endif;
      ?>  
      </div><!-- /searchresultsbox -->
    </div><!-- /collcelltwo -->
  </div><!-- /tb-one-row --> 
</div><!-- /tb-one -->
非常感谢Rick Hellewell的“str\\u replace”功能,它突出显示了搜索词。谢谢你的帮助。

1 个回复
SO网友:Rick Hellewell

一个随机的想法:将搜索字符串放入一个数组(使用explode)。查找高亮显示字符串的数组位置。开始倒数xx,结束倒数xx。提取这些数组值,然后将它们重新内爆为字符串。

这将适用于字符串中的一个searchresult单词。您必须循环多次出现searchresult单词。

假设完整的搜索结果有200个单词。searchresult单词位于位置50。提取从30开始到70结束的单词。把单词放回一个字符串中。显示字符串。

也许是更好的方法,但这是我的第一个想法。

结束

相关推荐

如何确保IS_Search()在QUERY_POST后返回FALSE

我知道我不应该使用query\\u帖子问题是我有一个程序已经做到了这一点。query_posts(\"\"); echo \"is_search():\" . is_search(); query_posts(\"s=kucing\"); echo \"is_search after():\" . is_search(); 现在,第一个回声返回为空。第二个返回1我想知道是否有一些全局变量可以设置为0,这样即使我设置了,也会返回falsequery_posts(\"s=ku