默认情况下,WordPress会在搜索结果中显示已找到网页的标题,并在摘录中显示页面内容的开头。
是否可以修改搜索结果中的摘录,以便显示不是内容的开头,而是显示找到搜索到的字词的文本?
例如:我们通过搜索找到了以下页面:
- 标题
- 1段
- 2段
- 3段 - 包含搜索到的字词
- 4段
默认情况下,它会在搜索结果中显示为:
- 标题
- 1段
我想这样:
- 标题
- 3段 - 包含搜索到的字词
是否可能,如果可以,怎么样? 提前谢谢!
答案 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 -->