2016-08-28 25 views
2

我一直在试图显示我的WordPress的自定义帖子类型的下一页和上一页。但链接不生成。我做错了什么?分页next_posts_link()和previous_posts_link()不工作在WordPress的自定义帖子类型

这里是我的代码:

<?php 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
    $video = array('post_type' => 'e_tv', 'posts_per_page' => 1,'order' => 'ASC', 'paged' => $paged); 
    $tv_query = new WP_Query($video); 
    while ($tv_query->have_posts()) : $tv_query->the_post(); 
    ?> 
    <!--video1--> 
    <section class="e_tv"> 
     <h4><?php the_title()?></h4> 
     <?php the_content(); ?> 
    </section> 
    <!--/video1--> 



     <?php 
    endwhile; 
    ?> 
    <div class="e_sep"></div> 

    <section class="e_nxtprev"> 
     <div class="e_next"><?php previous_posts_link('%link', 'PREVIOUS PAGE', $tv_query->max_num_pages) ?></div> 
     <div class="e_prev"><?php next_posts_link('%link', 'NEXT PAGE', $tv_query->max_num_pages) ?></div> 
    </section> 

你的帮助是极大的赞赏!

回答

0

居然发现我的错误我自己......所以共享它在细节以供将来参考:

我一直在使用next_posts_link()previous_posts_link()功能与参数错误整个时间了,甚至没有人通知这个。

next_posts_link()支持两个参数为:$label$max_pagesprevious_posts_link()只支持一个参数,即:$label,你可以看到我用三个参数来代替,这是这些功能出现故障的主要原因。

所以正确的代码是:

<?php 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
    $video = array('post_type' => 'e_tv', 'posts_per_page' => 1,'order' => 'ASC', 'paged' => $paged); 
    $tv_query = new WP_Query($video); 
    while ($tv_query->have_posts()) : $tv_query->the_post(); 
    ?> 
    <!--video1--> 
    <section class="e_tv"> 
     <h4><?php the_title()?></h4> 
     <?php the_content(); ?> 
    </section> 
    <!--/video1--> 



     <?php 
    endwhile; 
    ?> 
    <div class="e_sep"></div> 

    <section class="e_nxtprev"> 
     <?php posts_nav_link(); ?> 
     <div class="e_next"><?php previous_posts_link('PREVIOUS PAGE') ?></div> 
     <div class="e_prev"><?php next_posts_link('NEXT PAGE', $tv_query->max_num_pages) ?></div> 
    </section> 

参考文献:next_posts_link()previous_posts_link()

希望这将有助于在未来的像我这样的家伙...

1

使用“页面”,而不是“分页”给出了答案如果查询位于静态首页上,如

$paged = (get_query_var('page')) ? get_query_var('page') : 1; 
    $video = array('post_type' => 'e_tv', 'posts_per_page' => 1,'order' => 'ASC', 'paged' => $paged); 

并尝试使用

<?php 

echo get_next_posts_link('Older Entries', $tv_query->max_num_pages); 
echo get_previous_posts_link('Newer Entries'); 
?> 
+0

使它成为'page'而不是'paged'对我来说不起作用... – Omer

相关问题