我在向页面添加分页时遇到问题。我正在使用WP_query
并希望每页收回4篇帖子。基本查询似乎工作正常,但我必须缺少一些关于分页的内容。
// The query for 4 posts
$paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
$query = new WP_Query();
$query->query(\'showposts=4\'.\'&paged=\'.$paged);
if ( $query->have_posts() ) :
while ( $query->have_posts() ) : $query->the_post(); ?>
<div class="post">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<p class="author">by <?php the_author(); ?></p>
</div>
<?php endwhile; ?>
<!-- end of the loop -->
<nav>
<?php previous_posts_link(\'« Newer posts\') ?>
<?php next_posts_link(\'Older posts »\') ?>
</nav>
<?php wp_reset_postdata();
// If no results appear
else : ?>
<p><?php _e( \'Sorry, no posts matched your criteria.\' ); ?></p>
<?php endif; ?>
我在顶部为分页设置了var,如下所示:
$query->query(\'showposts=4\'.\'&paged=\'.$paged);
Am包括分页导航:
<nav>
<?php previous_posts_link(\'« Newer posts\') ?>
<?php next_posts_link(\'Older posts »\') ?>
</nav>
但我只得到空HTML
<nav></nav>
- 但没有错误,我也无法找出我遗漏了什么。
Edit: 根据建议,我已更新为:
$paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
$args = array(
\'posts_per_page\' => 4,
\'paged\' => $paged,
);
$query = new WP_Query( $args );
并将按钮链接更新为:
<?php next_posts_link( \'Older posts »\', $query->max_num_pages ); ?>
我仍然没有看到分页链接。
最合适的回答,由SO网友:Nicolai Grossherr 整理而成
请不要使用showposts
它被替换为posts_per_page
很久以前。
就我个人而言,我会在WP_Query
如下图所示,另外分页应如下图所示:
$paged = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;
$args = array(
\'posts_per_page\' => 4,
\'paged\' => $paged,
);
$the_query = new WP_Query( $args );
global $wp_query;
// Put default query object in a temp variable
$tmp_query = $wp_query;
// Now wipe it out completely
$wp_query = null;
// Re-populate the global with our custom query
$wp_query = $the_query;
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
// loop code
endwhile;
previous_posts_link( \'« Newer posts\' );
next_posts_link( \'Older posts »\', $the_query->max_num_pages );
wp_reset_postdata();
else :
// no post found code
endif;
// Restore original query object
$wp_query = null;
$wp_query = $tmp_query;
与Q&;相同;A.
How to fix pagination for custom loops? 我把你和ChipBennett联系了起来。
另请注意,如果这在作为静态首页的页面模板中工作,则必须使用查询变量page
而不是paged
:
$paged = ( get_query_var( \'page\' ) ) ? get_query_var( \'page\' ) : 1;
SO网友:Andreas Rex
这是一件好事posts_per_page 来自wordpress的值。您可以在wordpress管理菜单中更改此值。
$page = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;
if(!$page)
$page = ( get_query_var( \'page\' ) ) ? get_query_var( \'page\' ) : 1;
$posts_per_page = get_option( \'posts_per_page\' );
$query = new WP_Query( array(
\'posts_per_page\' => $posts_per_page,
\'paged\' => $page,
\'post_status\' => \'publish\',
\'orderby\' => \'title\',
\'order\' => \'ASC\',
) );
while ( $query->have_posts() ) {
$query->the_post();
// Code for Output
}