如何在WordPress搜索结果中摘录显示包含找到的单词的文本片段?

时间:2017-10-20 07:15:22

标签: wordpress

默认情况下,WordPress会在搜索结果中显示已找到网页的标题,并在摘录中显示页面内容的开头

是否可以修改搜索结果中的摘录,以便显示不是内容的开头,而是显示找到搜索到的字词的文本

例如:我们通过搜索找到了以下页面:

  
      
  • 标题
  •   
  • 1段
  •   
  • 2段
  •   
  • 3段 - 包含搜索到的字词
  •   
  • 4段
  •   

默认情况下,它会在搜索结果中显示为:

  
      
  • 标题
  •   
  • 1段
  •   

我想这样:

  
      
  • 标题
  •   
  • 3段 - 包含搜索到的字词
  •   

是否可能,如果可以,怎么样? 提前谢谢!

1 个答案:

答案 0 :(得分:2)

您将创建自己的search.php文件。 您需要在search.php模板中包含Wordpress循环以循环搜索结果并将其显示为模板的一部分(get_template_part('content','search'))。 在模板中,您可以显示您想要的所有内容。例如,使用preg_match函数在页面中查找搜索文本并仅显示它

    <section id="primary" class="content-area">
        <div id="content" class="site-content" role="main">

        <?php if ( have_posts() ) : ?>

            <header class="page-header">
                <h1 class="page-title"><?php printf( __( 'Search Results for: %s', 'shape' ), '<span>' . get_search_query() . '</span>' ); ?></h1>
            </header><!-- .page-header -->

            <?php shape_content_nav( 'nav-above' ); ?>

            <?php /* Start the Loop */ ?>
            <?php while ( have_posts() ) : the_post(); ?>

                <?php get_template_part( 'content', 'search' ); ?>

            <?php endwhile; ?>

            <?php shape_content_nav( 'nav-below' ); ?>

        <?php else : ?>

            <?php get_template_part( 'no-results', 'search' ); ?>

        <?php endif; ?>

        </div><!-- #content .site-content -->
    </section><!-- #primary .content-area -->