在Wordpress中构建我的第一个自定义主题,我创建了一个自定义查询,只在自定义类别页面上显示一个类别
使用:$ cat_posts = new WP_Query(" category_name = deep-thoughts-page");
我不再有分页。我的查询非常适合为我的帖子创建一个自定义类别页面,这些页面标有类别' deep-thoughts-page',它在其他任何地方都能很好地运行。
我理解这个查询,我喜欢这个查询,并且它有效,我只需要我的分页。
注意:我使用wp-admin面板来限制每页的帖子数量(这对我的查询工作正常),但我仍然失去了分页。
请帮助:)
答案 0 :(得分:0)
我认为您在wp_query而不是类别名称中定义了错误,您应该在其上应用类别ID。然后它将适用于你,并将分页应用于类别页面。
请参阅下面将为您使用的代码。
$query = new WP_Query( 'cat=1,2,3,4,5&posts_per_category=5' );
答案 1 :(得分:0)
这对你有用吗?
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$cat_posts->query( 'showposts=10&category_name=deep-thoughts-page&paged='.$paged );
在页面实现中,如果需要重建分页,可以执行以下操作:
<?php
while ($cat_posts->have_posts()) : $cat_posts->the_post();
// display the posts...
endwhile;
// Now rebuild the pagination
?>
<?php if ($cat_posts->max_num_pages > 1) : ?>
<div class="pager">
<?php if ($paged > 1) : ?>
<a href="<?php echo get_category_link($category_id).'page/1'; ?>">Previous</a>
<?php endif; ?>
<?php for ($i=1; $i<=$cat_posts->max_num_pages; $i++) : ?>
<a href="<?php echo get_category_link($category_id).'page/'.$i;?>" <?php echo ($paged==$i)? 'class="active"':'';?>><?php echo $i;?></a>
<?php endfor; ?>
<?php if ($paged != $cat_posts->max_num_pages) : ?>
<a href="<?php echo get_category_link($category_id).'page/'.$i; ?>">Next</a>
<?php endif; ?>
</div>
<?php endif; ?>
答案 2 :(得分:0)
嘿,使用下面的代码,您可以轻松创建分页。
if ( !function_exists( 'matword_pagination' ) ) :
/**
* Add number paggination
**/
function matword_pagination() {
$prev_arrow = is_rtl() ? '→' : '←';
$next_arrow = is_rtl() ? '←' : '→';
global $wp_query;
$total = $wp_query->max_num_pages;
$big = 999999999; // need an unlikely integer
if( $total > 1 ) {
if( !$current_page = get_query_var('paged') )
$current_page = 1;
if( get_option('permalink_structure') ) {
$format = 'page/%#%/';
} else {
$format = "&paged=%#%";
}
echo paginate_links(array(
'base' => htmlspecialchars_decode( str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ) ),
'format' => $format,
'current' => max( 1, get_query_var('paged') ),
'total' => $total,
'mid_size' => 3,
'type' => 'list',
'prev_text' => $prev_arrow,
'next_text' => $next_arrow,
) );
}
}
endif;
只需将此代码添加到functions.php文件中,并调用“matword_pagination()”函数,即可显示分页。
了解更多信息,请阅读this article.