所以我创建了专门的页面模板,在这个页面上我想列出最近的3篇博文,其中包含通常的分页链接,可以将用户带到上一个或下一个3个帖子。
我已填充列表,并且链接正在显示,但是当我点击上一个或下一个链接时,我只能获得与之前相同的3个帖子。我可以看到URL更改(/ blog / page / 2),但显示的帖子总是最近的三个。
更新。在非常沮丧之后,我决定把事情带回基础。下面的代码片段是我在模板中唯一的代码,只是为了基本上隔离循环,而这个STILL没有解决它。我得到的只是页面上的一个单独的帖子,但如果我在网址的末尾手动输入/ page / 2,它会带我到第2页,显示不同的帖子。但是,我看到与分页有关的唯一链接是“较新的帖子”(并且仅出现在第2页)。为什么“老”的帖子没有出现?
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 1,
'paged' => $paged,
);
$postslist = get_posts( $args );
foreach ($postslist as $post) : setup_postdata($post);
?>
<article>
<h2 class="fnt25 noBtmMarg"><a href="<?php echo get_permalink(); ?>" title="Read: <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<div class="meta fnt18 pMarginBottom">Posted on: <?php the_date(); ?></div>
<div class="fnt22"><?php print_custom_field('listingDesc'); ?></div>
<a href="<?php echo get_permalink(); ?>" class="floatRight fnt22" title="Read the full article: <?php the_title(); ?>">Read more...</a>
<div class="clearfix"></div>
</article>
<?php endforeach; ?>
<div class="nav-previous alignleft"><?php next_posts_link( 'Older posts' ); ?></div>
<div class="nav-next alignright"><?php previous_posts_link( 'Newer posts' ); ?></div>
答案 0 :(得分:1)
好。在自己做了一点研究之后,似乎query_posts()
对于这种情况来说并不是最好的。使用get_posts(),也可以阅读它。
一个很好的例子(编辑:更好的描述):
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 3,
'paged' => $paged,
);
$postslist = get_posts( $args );
foreach ($postslist as $post) : setup_postdata($post);
?>
答案 1 :(得分:0)
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; // setup pagination
$the_query = new WP_Query( array(
'post_type' => 'post',
'paged' => $paged,
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'DESC',
'posts_per_page' => 1)
);
while ( $the_query->have_posts() ) : $the_query->the_post();
echo '<div>' . get_the_title() . '</div>';
the_content();
endwhile;
echo '<nav>';
echo '<div class="nav-previous alignleft">'.get_next_posts_link('Older posts', $the_query->max_num_pages).'</div>'; //Older Link using max_num_pages
echo '<div class="nav-next alignright">'.get_previous_posts_link('Newer posts', $the_query->max_num_pages).'</div>'; //Newer Link using max_num_pages
echo "</nav>";
wp_reset_postdata(); // Rest Data
请检查上面的代码吗?