如何在 Wordpress 自定义帖子类型查询中包含分页
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/41738362/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to include pagination in a Wordpress Custom Post Type Query
提问by Andrei
I have the code below:
我有下面的代码:
<?php $the_query = new WP_Query( 'posts_per_page=30&post_type=phcl' ); ?>
<?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
<div class="col-xs-12 file">
<a href="<?php echo $file; ?>" class="file-title" target="_blank">
<i class="fa fa-angle-right" aria-hidden="true"></i>
<?php echo get_the_title(); ?>
</a>
<div class="file-description">
<?php the_content(); ?>
</div>
</div>
<?php endwhile; wp_reset_postdata(); ?>
I am trying to use paginate_links
Wordpress function but no matter where I put it, I can't make it work. Can someone help me with this?
我正在尝试使用paginate_links
Wordpress 功能,但无论我把它放在哪里,我都无法让它工作。有人可以帮我弄这个吗?
回答by Yamu
Try the code below:
试试下面的代码:
$the_query = new WP_Query( array('posts_per_page'=>30,
'post_type'=>'phcl',
'paged' => get_query_var('paged') ? get_query_var('paged') : 1)
);
?>
<?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
<div class="col-xs-12 file">
<a href="<?php the_permalink(); ?>" class="file-title" target="_blank">
<i class="fa fa-angle-right" aria-hidden="true"></i> <?php echo get_the_title(); ?>
</a>
<div class="file-description"><?php the_content(); ?></div>
</div>
<?php
endwhile;
$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' => $the_query->max_num_pages
) );
wp_reset_postdata();
回答by Purvik Dhorajiya
When querying a loop with new WP_Queryset the 'total' parameter to the max_num_pages
property of the WP_Query
object.
当使用新的WP_Query查询循环时,将“total”参数设置max_num_pages
为WP_Query
对象的属性。
Example of a custom query:
自定义查询示例:
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type'=>'post', // Your post type name
'posts_per_page' => 6,
'paged' => $paged,
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
// YOUR CODE
endwhile;
$total_pages = $loop->max_num_pages;
if ($total_pages > 1){
$current_page = max(1, get_query_var('paged'));
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => '/page/%#%',
'current' => $current_page,
'total' => $total_pages,
'prev_text' => __('? prev'),
'next_text' => __('next ?'),
));
}
}
wp_reset_postdata();
?>
Example of paginate_links
parameters adapted to the custom query above:
paginate_links
适用于上述自定义查询的参数示例:
For more reference please visit this link
如需更多参考,请访问此链接