我遇到的问题是我在自己的页面模板上创建了一个名为blog.php的单独的新博客页面,我在每个页面中删了5个帖子,第一页工作得很好并链接到他们的单个帖子也附上了。当我尝试将wp-pagenavi添加到我的导航栏中时,我遇到了问题。发生的事情是我将点击进入下一页并更改网址,但帖子保持与以前相同,应该将它们切换到下一组。我不知道你是否可以在index.php之外使用wp-pagenavi,但是如果有人能让我知道我在这里做错了什么以及为什么我继续得到相同的帖子,这将是非常棒的和非常明确的。我在blog.php上有一个我的博客,那是我试图开始工作的文件。我在下面发布了这个。请让我知道我能做些什么,谢谢你!
<?php
/**
* Template Name: Blog Page
*/
get_header(); ?>
<div id="content">
<?php query_posts("posts_per_page=5"); ?>
<?php
//THE LOOP.
if( have_posts() ):
while( have_posts() ):
the_post(); ?>
<article id="post-1" <?php post_class( 'clearfix' ); ?>>
<h2 class="entry-title"> <a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a></h2>
<div class="postmeta">
<span class="author"> Posted by: <?php the_author(); ?> </span>
<span class="date"> <?php the_date(); ?> </span>
<span class="num-comments">
<?php comments_number('No comments yet', 'One comment', '% comments'); ?></span>
<span class="categories">
<?php the_category(); ?>
</span>
<span class="tags">
<?php the_tags(); ?>
</span>
</div><!-- end postmeta -->
<?php if( has_post_thumbnail() ): ?>
<div class="thumb">
<?php the_post_thumbnail( 'thumbnail' ); ?>
</div>
<?php endif; ?>
<div class="entry-content">
<?php
if( is_single()):
the_content();
else:
the_excerpt();
endif;
?>
</div>
<?php comments_template(); ?>
</article><!-- end post -->
<?php
endwhile;
else: ?>
<h2>Sorry, no posts found</h2>
<?php endif; //END OF LOOP. ?>
<div id="nav-below" class="pagination">
<?php if(function_exists('wp_pagenavi')) // if PageNavi is activated ?>
<?php wp_pagenavi(); // Use PageNavi ?>
</div><!-- end #nav-below -->
</div><!-- end content -->
<?php get_footer(); ?>
答案 0 :(得分:0)
以下是我认为你应该做的事情:
第1步:创建一个名为“Blog”的页面(可能是你已经这样做了)
第2步:丢弃您创建的blog.php
模板
第3步:转到 admin - &gt;设置 - &gt;阅读,为“首页显示”选择“静态页面”,然后从“帖子页面”下拉列表中选择“博客”页面。
第4步:制作index.php
文件的副本,并将其重命名为home.php
。这将是应用于新“主页”页面的模板。然后使用wp-pagenavi代码替换home.php
中的默认分页。
第5步:在您的全新博客页面上修改查询,方法是将其放在functions.php
文件中:
add_action( 'pre_get_posts','so16345510_pre_get_posts' );
function so16345510_pre_get_posts( $query )
{
if( is_home() && $query->is_main_query() ){
$query->set( 'posts_per_page', 5 );
}
return $query;
}
答案 1 :(得分:0)
试试这个:
<?php $paged = 1;
if ( get_query_var('paged') ) $paged = get_query_var('paged');
if ( get_query_var('page') ) $paged = get_query_var('page');
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query->query('posts_per_page=5'.'&paged='.$paged);?>
<?php if ( $wp_query->have_posts() ) : ?>
//your loop code goes here
<?php wp_pagenavi(); ?>
<?php endif; // end have_posts() check ?>
<?php
$wp_query = null;
$wp_query = $temp; // Reset
?>