分页next_posts_link()和previous_posts_link()不适用于wordpress自定义帖子类型

时间:2016-08-28 07:16:55

标签: php wordpress

我一直在尝试在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>

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

如果查询位于静态首页上,请使用“page”而不是“paged”,例如

  $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' );
 ?>

答案 1 :(得分:0)

您可以查看以下网址中的旧讨论,

https://wordpress.org/support/topic/pagination-with-custom-post-type-listing

特别寻找//gcc wrap.c -g -Wl,--wrap,fprintf int __real_fprintf(FILE *stream, const char *format, ...); int main(){ fprintf(stderr, "MAIN!\n"); return 0; } int __wrap_fprintf(FILE *stream, const char *format, ...){ __real_fprintf(stderr, "WRAP!\n"); return 0; } &amp;给出的答案。 rafaelxy

答案 2 :(得分: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()

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

相关问题