我想在我的存档页面上使用分页链接,其中列出了网站上的所有帖子。
我想在每页只显示10个帖子,在底部显示OLDER POSTS链接以显示下一页上的旧帖子。
我尝试在最后添加pagginate函数,但前端没有任何显示给我,所以我一定做错了。
我目前的代码如下:
<div class="container">
<div class="content col-md-9">
<div class="home-content">
<!-- Show posts -->
<?php $posts = get_posts(array('category'=>'', 'posts_per_page'=>10)); ?>
<?php if($posts) { ?>
<?php foreach ($posts as $post) { setup_postdata($post); ?>
<div style="float:left; margin:1%;">
<?php
if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
the_post_thumbnail( 'thumbnail', array( 'class' => 'img-post')); // show featured image
}
?>
</div>
<h1 class="post-thumb"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
<h4>Category: <?php the_category(', '); ?></h4>
<p><?php the_excerpt(); ?></p>
<hr style="margin-bottom:5%">
<?php } wp_reset_postdata(); ?>
<?php } else { ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php } ?>
<?php if (function_exists("emm_paginate")) {
emm_paginate();
} ?>
</div>
</div>
<div class="col-md-3 sidebar unstyled">
<?php dynamic_sidebar( 'home1' ); ?>
</div>
<div class="col-md-3 sidebar unstyled sidebar-space">
<?php dynamic_sidebar( 'home2' ); ?>
</div>
<div class="col-md-3 sidebar unstyled sidebar-space">
<?php dynamic_sidebar( 'articles1' ); ?>
</div>
</div>
</div>
</body>
答案 0 :(得分:1)
请查看Wordpress Codex是否有关于分页的大量文档,特别是此页面:http://codex.wordpress.org/Pagination以及此处的Wp_Query,分页部分:http://codex.wordpress.org/Class_Reference/WP_Query#Pagination_Parameters
您正确的分页循环应如下所示:
<?php
// the query to set the posts per page to 10
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array('posts_per_page' => 10, 'paged' => $paged );
query_posts($args); ?>
<!-- the loop -->
<?php if ( have_posts() ) : while (have_posts()) : the_post(); ?>
<!-- rest of the loop -->
<!-- the title, the content etc.. -->
<?php endwhile; ?>
<!-- pagination -->
<?php next_posts_link(); ?>
<?php previous_posts_link(); ?>
<?php else : ?>
<!-- No posts found -->
<?php endif; ?>
需要将$ paged var添加到查询中,我也不知道你在哪里获得了emm_paginate();功能,只需坚持使用Wordpress代码来完成工作,并在工作之后自定义它。
编辑:匹配请求的代码
你使用的是get_posts,如果你想要一个简单的帖子查询,但是当你需要分页时会很麻烦。出于此目的,最好使用query_posts,作为我给出的示例代码。
所以,我已经更正了查询的参数(类别为空并添加了$ paged参数)。
<div class="container">
<div class="content col-md-9">
<div class="home-content">
<!-- Show posts -->
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'paged'=> $paged,
'posts_per_page'=> 10
);
query_posts($args); ?>
<?php if ( have_posts() ) : while (have_posts()) : the_post(); ?>
<div style="float:left; margin:1%;">
<?php
if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
the_post_thumbnail( 'thumbnail', array( 'class' => 'img-post')); // show featured image
}
?>
</div>
<h1 class="post-thumb"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>
<h4>Category: <?php the_category(', '); ?></h4>
<p><?php the_excerpt(); ?></p>
<hr style="margin-bottom:5%">
<?php endwhile; ?>
<!-- pagination -->
<?php next_posts_link(); ?>
<?php previous_posts_link(); ?>
<?php else : ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
</div>
</div>
<div class="col-md-3 sidebar unstyled">
<?php dynamic_sidebar( 'home1' ); ?>
</div>
<div class="col-md-3 sidebar unstyled sidebar-space">
<?php dynamic_sidebar( 'home2' ); ?>
</div>
<div class="col-md-3 sidebar unstyled sidebar-space">
<?php dynamic_sidebar( 'articles1' ); ?>
</div>
</div>
现在,您可以使用其他分页功能和数字,例如,如果需要。
上面的代码经过测试并正在运行。