为查询自定义页面添加分页

时间:2015-03-11 作者:Jacob Wolf

我使用自定义页面模板创建了一个自定义新闻页面,这是我对最新帖子的查询:

if ( have_posts() ) : 
    while ( have_posts() ) : the_post();
        the_content(); ?>
        <div class="line2"></div>
    <?php endwhile; 
endif;
wp_reset_query(); ?>

<!-- Start latest post -->
<?php $latest_post = get_posts( \'numberposts=5\' ); // Defaults args fetch posts starting with the most recent
foreach( $latest_post as $post ) : setup_postdata( $post ); ?>
    <div class="newsthumb">
        <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
    </div>
    <div class="newstitle">
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </div>
    <div class="postdate-category">
        <?php esportsheaven_posted_on(); ?> | <?php the_category(); ?>
    </div>
    <div class="newscontent">
        <?php the_excerpt(); ?>
    </div>
<?php endforeach;
wp_reset_query();
最初页面上应该有5篇文章,当站点获得超过5篇文章时,我会添加分页。做这件事最好/最有效的方法是什么?

1 个回复
SO网友:Pieter Goosen

如果将来要对查询分页,我建议您执行以下操作

更改为WP_Query 相反,它更适合分页查询。

尽管您的帖子还不到5篇,但您可以通过添加paged 查询的参数

使用wp_reset_query() 不正确。与…连用的query_posts 你永远不应该使用它。您应该使用wp_reset_postdata(). 此外,您不需要重置主查询,它已经完成了。

只是一个提示,用卷发代替:endifendwhile. 它更容易调试,并且几乎所有(如果不是所有的话)代码编辑器都支持这种语法

你可以试试这样的

if ( have_posts() ) { 
    while ( have_posts() ) { 
        the_post();

        the_content(); ?>
        <div class="line2"></div>
    <?php } 
}
?>

<!-- Start latest post -->
<?php
$paged = get_query_var( \'paged\' ) ? get_query_var( \'paged\' ) : 1;
$latest_post = new WP_Query( \'numberposts=5&paged=\' . $paged ); // Defaults args fetch posts starting with the most recent
if ( $latest_post->have_posts() ) { 
        while ( $latest_post->have_posts() ) { 
            $latest_post->the_post(); ?>
            <div class="newsthumb">
                <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
            </div>
            <div class="newstitle">
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            </div>
            <div class="postdate-category">
                <?php esportsheaven_posted_on(); ?> | <?php the_category(); ?>
            </div>
            <div class="newscontent">
                <?php the_excerpt(); ?>
            </div>
        <?php 
    }
    wp_reset_postdata();
}

结束

相关推荐

Pagination and Related Posts

是否可以对嵌入在single中的以下相关POST代码使用分页。我的主题的php。 <?php // for use in the loop, list 5 post titles related to first tag on current post $tags = wp_get_post_tags($post->ID); if ($tags) { $first_tag = $