当使用‘静态页面’作为‘首页’时,默认分页被破坏

时间:2017-02-19 作者:Zakari

目前我已经安装了wordpress v4。7.2并创建了一个儿童主题twentyfifteen

我已经创建了custom post type.

enter image description here

现在当浏览localhost, 我得到了应为的列表,但分页不起作用:(:

例如page2 points

本地主机/第页/2/

--

作为访问时localhost/works

分页工作正常enter image description here

我使用的代码也在archivetemplate 文件,如下所示:

// Previous/next page navigation.
the_posts_pagination( array(
    \'prev_text\'          => __( \'Previous page\', \'twentyfifteen\' ),
    \'next_text\'          => __( \'Next page\', \'twentyfifteen\' ),
    \'before_page_number\' => \'<span class="meta-nav screen-reader-text">\' . __( \'Page\', \'twentyfifteen\' ) . \' </span>\',
) );

<!--when WORKS is as default page homepage-->
works-template.php

<!--when access it via localhost/works-->
archive-works.php
唯一不同的是works-template.php, 调用query_posts()

<?php
$posts_per_page = get_query_var(\'posts_per_page\');
$paged          = ( get_query_var(\'page\') ) ? get_query_var(\'page\') : 1;
$args           = array(\'post_type\'     => \'works\',\'posts_per_page\'=> $posts_per_page ,\'post_status\'   => \'publish\' ,\'orderby\'       => \'menu_order\',\'order\'         => \'ASC\',\'paged\'         =>$paged);


query_posts( $args );

// Start the Loop.
while ( have_posts() ) : the_post();
有什么建议吗?

1 个回复
SO网友:Zakari

解决方案是不使用#静态页面#并合并到functions.php

合并到函数。php如下所示:

//http://justintadlock.com/archives/2010/02/02/showing-custom-post-types-on-your-home-blog-page
add_filter( \'pre_get_posts\', \'my_get_posts\' );

function my_get_posts( $query ) {

    if ( is_home() && $query->is_main_query() )
        $query->set( \'post_type\', array( \'works\' ) );
    //else 
        //$query->set( \'post_type\', \' page\' );//$query->set( \'post_type\', array( \'page\', \'post\' ) );

    return $query;
}

相关推荐

Count posts for pagination

我正在为一个网站分页<;上一页(页码)下一页>很简单,已经完成。但是现在我需要添加一个选择器来直接转到页面(例如:转到第7页),要这样做,我需要知道有多少页面,为此我需要计算在查询中找到了多少帖子。问题是这个网站有太多的帖子(>13.000),查询所有帖子都会减慢页面加载速度,这就像。。。10秒后页面才能加载。显然,这是不可接受的。分页解决了这个问题,因为一次只加载50或100篇文章,但我无法将它们全部计算在内。我可以在不加载的情况下统计某个查询中的帖子吗?或者我可以通过其他方式获得页数吗