更改搜索结果布局中显示的摘录数量

时间:2019-03-02 作者:dstonek

WP 5.1 2017(儿童)主题。

_posts_per_page = 1
对于搜索结果,我想显示5个摘录
使用此answer 还有这个page 我能够做到这一点,但显示的摘录并不是来自搜索结果,而是最近5次发布的帖子。

这是修改搜索中循环的外观。php:

    <?php 
    $blogpost = new WP_Query(array(\'post_type\' => \'post\', \'posts_per_page\' => 5));
    if ( $blogpost->have_posts() ) :
    //if ( have_posts() ) :
        /* Start the Loop */
        while ( $blogpost->have_posts() ) :
        //while ( have_posts() ) :
            $blogpost->the_post();
            //the_post();

            /**
             * Run the loop for the search to output the results.
             * If you want to overload this in a child theme then include a file
             * called content-search.php and that will be used instead.
             */
            get_template_part( \'template-parts/post/content\', \'excerpt\' );

        endwhile; // End of the loop.    
        wp_reset_postdata();
以及分页代码:

        the_posts_pagination(
            array(
                \'prev_text\'          => twentyseventeen_get_svg( array( \'icon\' => \'arrow-left\' ) ) . \'<span class="screen-reader-text">\' . __( \'Previous page\', \'twentyseventeen\' ) . \'</span>\',
                \'next_text\'          => \'<span class="screen-reader-text">\' . __( \'Next page\', \'twentyseventeen\' ) . \'</span>\' . twentyseventeen_get_svg( array( \'icon\' => \'arrow-right\' ) ),
                \'before_page_number\' => \'<span class="meta-nav screen-reader-text">\' . __( \'Page\', \'twentyseventeen\' ) . \' </span>\',
            )
        );
显示的摘录数量可以,但不是从搜索结果中获取的(尽管输入了关键字,但输出总是相同的,最后5篇发布的文章)。

注意:使用修改的搜索。php分页与实际搜索结果相对应。因为如果实际搜索结果找到3篇文章,则默认每页文章数=1,所以底部显示1·2·3。

如何从搜索结果中输出所需数量的摘录,并根据这些摘录进行分页?

1 个回复
最合适的回答,由SO网友:Gert 整理而成

当您在wp上搜索时,它会自动执行搜索查询。在您的代码中,您创建了一个新的WP\\u查询来显示5篇文章(默认情况下按数据排序),无需这样做。

在这里最好的办法是离开search.php 按原样归档并使用动作挂钩。您可以将其添加到子主题函数中。php文件。

function my_search_filter( $query ) {
  if ( $query->is_main_query() ) {
    if ( $query->is_search ) {
      $query->set(\'posts_per_page\', \'5\');
    }
  }
}

add_action(\'pre_get_posts\',\'my_search_filter\');

相关推荐

Excerpt using Read More Tag

如何获取使用“阅读更多”标记的帖子摘录?The documentation states 我应该使用the_content 功能,但我不想这样。我只想要文本。此外,我不希望将“阅读更多”链接自动插入到相同的paragraph 标记-我只想要文本,我会创建自己的阅读更多链接。从本质上讲,我试图打印一篇文章的摘录,而没有阅读更多链接。我可以这样做吗?