每次显示所有结果的搜索结果页面上的WP_QUERY

时间:2017-06-23 作者:user7548188

我正在尝试构建我的搜索结果页面,我正在使用wp\\u query。然而,随着时间的推移,我会搜索一些东西,我所有的帖子都会显示出来,而不仅仅是那些与搜索匹配的帖子。为什么会这样,我该如何解决?

<?php 
get_header(); ?>
<?php 
$args = array(
\'posts_per_page\' => 4
);
$search_query = new WP_Query( $args );
if ( $search_query->have_posts() ) : 
?>
<div class="search-results-search">
<form role="search" method="get" class="search-form-search form-inline-search" action="">
            <div class="input-group-search">
                <input type="search" value="" name="s" class="input-sm-search search-field-search form-control-search" placeholder="<?php echo $s ?>">
            </div>
        </form>
    </div>
<?php while ( $search_query->have_posts() ) : $search_query->the_post() ?>
<article <?php post_class( \'col-sm-6 col-md-6\' ); ?>> 
<?php the_post_thumbnail(\'full\', array(\'class\' => \'medium-front-thumbnail\')); ?> 
<div class="front-page-date"><?php echo human_time_diff( get_the_time(\'U\'), current_time(\'timestamp\') ) . \' ago\'; ?></div>
<h2><a class="front-page-post-title" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> 
<p class="front-page-post-excerpt"><?php echo get_the_excerpt(); ?></p> 
<div class="front-page-post-info"> 
<a class="moretext" href="<?php the_permalink(); ?>">Read more</a>
<?php get_template_part( \'front-shop-the-post\' ); ?>
<?php get_template_part( \'share-buttons\' ); ?>
    <div class="front-comments"><?php comments_popup_link (\'0\', \'1\', \'%\', \'comment-count\', \'none\'); ?></div> 
    </div>

</article>
<?php endwhile ?>
<?php else : ?>
<h2>Ooops, no posts here!</h2>
<?php endif ?>


<?php
wp_reset_postdata(); 
get_footer(); ?>

1 个回复
SO网友:Jacob Peattie

不要创建新的WP\\U查询。根据模板层次结构,WordPress使用搜索。搜索结果页面主题中的php模板。此模板只需要包含The Loop, 里面只有你的搜索结果。

请参见2017年搜索结果模板示例:https://github.com/WordPress/twentyseventeen/blob/master/search.php

结束

相关推荐

Page.php中有多个is_page()

我正在尝试将多个页面ID添加到if-else语句中。这是我目前的代码:if ( is_page(ID) || is_page(ID) ) { get_header(\'header_alt\'); } else { get_header(); } 我尝试了在google上找到的其他一些解决方案,但它总是只在清除缓存后在初始页面上起作用。