我试图在我的页面上显示下一个/上一个导航按钮,该按钮显示我的“事件”自定义帖子类型中的所有页面。问题是按钮甚至没有显示,但我不知道为什么不显示。我已经在我的博客页面帖子中使用了这一功能,但考虑到它的功能设置为“页面”而不是“帖子”,我想知道我是否需要对自定义帖子类型做一些不同的事情。
代码:
<?php
/* Queue the first post, that way we know
* what date we\'re dealing with (if that is the case).
*
* We reset this later so we can run the loop
* properly with a call to rewind_posts().
*/
if ( have_posts() )
the_post();
?>
<h1>
<?php _e( \'Results\', \'twentyten\' ); ?>
</h1>
<div class="resultDetails">
<p>Displaying all of our Events:</p>
</div>
<ul>
<?php
$paged = get_query_var(\'paged\');
$paged = ($paged) ? $paged : 1;
?>
<?php $loop = new WP_Query( array( \'post_type\' => \'events\', \'posts_per_page\' => -1, \'paged\' => $paged ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<li class="resultItem">
<?php if (has_post_thumbnail( $post->ID )): ?>
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'full\' ); ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><img src="<?php bloginfo(\'template_directory\'); ?>/thumbs.php?src=<?php echo $image[0]; ?>&w=120&h=120&zc=1" alt="<?php the_title(); ?>" /></a>
<?php endif; ?>
<div id="resultText">
<h2 class="redSubHeader"><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
</div>
</li>
<?php endwhile;?>
<nav class="navigation">
<ul>
<li class="next-posts post-nav"><?php next_posts_link(\'Next\') ?></li>
<li class="prev-posts post-nav"><?php previous_posts_link(\'Prev\') ?></li>
</ul>
</nav>
</ul>
任何帮助都将不胜感激!
谢谢
最合适的回答,由SO网友:Milo 整理而成
next_posts_link()
和previous_posts_link()
使用全局$wp_query->max_num_pages
确定是否有更多页面。因为您使用的是WP_Query
, 这个$wp_query
全局与此新查询不相关。
尝试显式传递$loop->max_num_pages
功能:
next_posts_link( \'Next\' , $loop->max_num_pages );
如果您没有使用原始查询,请调用
query_posts()
而不是创建新的
WP_Query
例子
EDIT - 此外,正如@kevin提到的,posts_per_page
设置为-1将加载所有帖子,因此您必须将其更改为分页。