如何从主页上删除/page/2/?

时间:2016-02-10 作者:Johan

首先:我不明白http://myurl/page/2

我查看了网络选项卡Firebug 看到我的页面加载时间超过了3秒/page/2... 但我根本不需要在头版上分页。我也不明白它是从哪里来的。

我的问题是:如何禁用/删除它,并仅在需要分页时显示它?

这是我用来获取帖子的查询:

<?php
query_posts(array(\'orderby\' => \'rand\', \'showposts\' => 10));
if (have_posts()) :
while (have_posts()) : the_post(); 
?>

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

如果首页设置为显示帖子,那么无论主题是否显示这些帖子,都会运行对这些帖子的查询。这就是为什么你在没有帖子的情况下进行分页。您可以通过临时删除主题首页来测试这一点。php(或其他)。你应该看到你所有的帖子都有正确的分页。

您有两种选择来解决此问题:

使用静态首页

如果将首页设置为静态(这可能是一个空白页),则主页的原始查询现在将仅限于此页-因此,没有分页。

更改主查询,而不是使用query_posts (无论如何,你都不应该这样做——但那是another question), 更改原始查询。您应该能够使用pre_get_posts 挂钩和is_home()is_front_page(). 类似这样:

/**
 * Alters the font-page main query
 */
add_action( \'pre_get_posts\', \'wpse_217284_alter_front_page_query\' );
function wpse_217284_alter_front_page_query( $query ) {

    // don\'t run on the backend
    if ( is_admin() )
      return;

    // Only run on the front page main query
    if ( $query->is_main_query() && is_front_page() ) {

        $query->set( \'orderby\', \'rand\' );
        $query->set( \'posts_per_page\', 10 );
    }

    return;
}
请注意,这还没有经过测试,只是一个示例,因此可能无法正常工作,但它应该会让您知道该怎么做

相关推荐

Can't Add Pagination

我无法添加分页来在页面之间划分帖子并在页面之间导航。目前所有20篇帖子我都有一次加载。我想在我的页面底部添加分页,并在5之前查看帖子。我有一个自定义的帖子类型,我将其定义为Project。我有两页。主页和日志。主页以我的项目帖子类型为特征,日志以我的常规博客帖子为特征。我希望这两页都有分页。我的当前索引。php是我的主页,如下所示:<?php get_header(); ?> <?php get_footer(); ?> <div class=\"p