POSTS_NAV_LINK();不显示在静态页面上

时间:2014-01-25 作者:tmyie

我有两个不同的循环。主页上的默认值,但存档页面上的二次循环。它抓住了所有的内容,就像这样:

<?php // WP_Query arguments
$args = array (
    \'posts_per_page\'         => \'3\'
);
// The Query
$archiveQuery = new WP_Query( $args );

// The Loop
if ( $archiveQuery->have_posts() ) {
    while ( $archiveQuery->have_posts() ) {
        $archiveQuery->the_post(); ?>
        <div class="post">
<a href="<?php the_permalink() ?>">
    <?php  first_item(); ?> </a>
然而,当我包括posts_nav_link();, 它没有出现。这是因为它是一个静态页面吗?我用它来制作一个无限卷轴。

2 个回复
SO网友:s_ha_dum

posts_nav_link 用于存档页面。该函数使用get_next_posts_nav_link 哪一个uses the global variable $wp_query. 有一张支票!is_singular(). 这在你的“静态”页面上总是错误的,因为$wp_query 将表示页面(单个),而不是您创建的查询。所以,是的,这是因为它是一个静态页面。

奇普·贝内特(ChipBennett)编写/汇编了一份相当详尽的答案explaining how to make pagination work.

SO网友:signal2013

确保在使用wp\\U查询创建的循环末尾包含wp\\U reset\\u postdata()。

使用wp_reset_postdata() 要在二次查询之后还原主查询循环的全局$post变量。。。https://codex.wordpress.org/Function_Reference/wp_reset_postdata

// The Query
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
    echo \'<ul>\';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo \'<li>\' . get_the_title() . \'</li>\';
    }
    echo \'</ul>\';

    /* Restore original Post Data */
    wp_reset_postdata();

} else {
    // no posts found
}

结束

相关推荐

Pagination on Custom Loop

我想将最新帖子的样式与自定义页面上某个类别中的所有其他帖子的样式不同。到目前为止,我有下面的代码,它正是这样做的:<?php if (have_posts()) : ?> <?php query_posts(\"cat=4&showposts=1\"); ?> <?php while (have_posts()) : the_post(); ?> (Style1)<?php the_title(); ?><