2012-01-04 102 views
1

我在循环中使用分页查询。但我需要它仅在需要分页时输出HTML。因为在某些页面上,分页标记不是必须的,因为该页面只有几个帖子。Wordpress分页循环显示分页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' => __('&#8592; previous downloads','multilingol'), 
     'next_text' => __('newer downloads &#8594;','multilingol') 
     )); 
    ?> 

    </div> 

<?php endif; wp_reset_query(); ?> 

回答

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' => __('&#8592; previous downloads','multilingol'), 
    'next_text' => __('newer downloads &#8594;','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

+0

古斯塔沃你好,非常感谢你的帮助。迷你循环的作品,但我无法得到分页链接输出。使用foreach循环显示链接是什么意思?我试过这个,foreach($ links);但不工作。谢谢你,乔希 – Joshc 2012-01-04 13:06:03

+0

你必须做一些事情:'foreach($ link as $ link)echo $ link;'。 – 2012-01-05 00:00:23

+0

我在我的答案中加入了'foreach',以便更容易理解您如何实现循环。你可以在这里找到更多关于'foreach'的用法:http://br.php.net/manual/en/control-structures.foreach.php – 2012-01-05 00:05:41