2012-01-04 133 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