我在循环中使用分页查询。但是,只有在需要分页时才需要输出HTML。因为在某些页面上,分页标记不是必需的,因为页面只有几个帖子。
所以目前在我的循环中,如果存档页面显示8个帖子,我的标记<div class="archive-navigation">
和</div>
仍在输出中。如何将此HTML标记编织到我的分页查询中,以便在需要分页时仅输出HTML?
如果循环调用超过10个帖子,则只需要分页和标记。
提前致谢。
<?php query_posts(array(
'post_type' => 'download',
'order' => 'DESC',
'paged' => $paged,
'posts_per_page' => 10
)); ?>
<?php if ( have_posts()) : while (have_posts()) : the_post(); ?>
<!-- MY LOOP -->
<?php endwhile; ?>
<div class="archive-navigation">
<?php
global $wp_query;
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages,
'prev_text' => __('← previous downloads','multilingol'),
'next_text' => __('newer downloads →','multilingol')
));
?>
</div>
<?php endif; wp_reset_query(); ?>
答案 0 :(得分:0)
您可以将type => 'array'
添加到如下所示的参数中。
<?php
global $wp_query;
$big = 999999999; // need an unlikely integer
$links = paginate_links( array(
'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages,
'prev_text' => __('← previous downloads','multilingol'),
'next_text' => __('newer downloads →','multilingol'),
'type' => 'array',
));
?>
在此之后,您可以查看count($links)
数组是否包含要显示的链接<div>
。
最终代码如下所示:
<?php
global $wp_query;
$big = 999999999; // need an unlikely integer
$links = paginate_links( ... )); // Above parameters array.
?>
<?php if (count($links) > 0) : ?>
<div class="archive-navigation">
<?php foreach ($links as $link) : ?>
<?php echo $link ?>
<?php endforeach ?>
</div>
<?php endif ?>
有关使用paginate_links
功能的详细信息,请参阅此处:http://codex.wordpress.org/Function_Reference/paginate_links