我一直在尝试在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 :(得分: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_pages
和previous_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()
希望这将有助于像我这样的家伙...