2012-01-04 8 views
1

私のループではページ設定クエリを使用しています。しかし、ページネーションが必要な場合にのみHTMLを出力する必要があります。一部のページでは、ページにはいくつかのポストしかないため、改ページマークアップは不要です。Wordpressのページングループshow pagination htmlがtrueの場合

私のループでは、アーカイブページに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', 
)); 
?> 

配列は<div>を表示したりしないようにリンクがある場合は、count($links)に確認することができます。

最終的なコードは次のようになります。

<?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($リンク);動作しません。ありがとう、ジョシュ – Joshc

+0

あなたは 'foreach($ link as $ link)echo $ link;'のようなことをしなければなりません。 –

+0

ループを実装する方法を理解しやすくするために、私の答えに 'foreach'を追加しました。 'foreach'の使い方については、こちらをご覧ください:http://br.php.net/manual/en/control-structures.foreach.php –

関連する問題