我在multiple loops structure内编码自定义循环:
$q = get_posts( $args );
// Run your loop
echo '<div class="row">';
$i = 0;
foreach ( $q as $post ) : setup_postdata( $post );
$i++;
if ($i%4==0)
echo '</div><div class="row">';
get_template_part('loop');
endforeach;
wp_bs_pagination();
wp_reset_postdata();
除了我添加wp_bs_pagination();
以加载分页。它只在每一页重复同一组帖子。有什么建议吗?
答案 0 :(得分:0)
试试这个,将其粘贴到你的functions.php
中function custom_pagination() {
global $wp_query;
$big = 999999999; // need an unlikely integer
$pages = paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages,
'prev_next' => false,
'type' => 'array',
'prev_next' => TRUE,
'prev_text' => __('«'),
'next_text' => __('»'),
) );
if( is_array( $pages ) ) {
$paged = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged');
echo '<ul class="pagination">';
foreach ( $pages as $page ) {
echo "<li>$page</li>";
}
echo '</ul>';
}
}
然后使用 custom_pagination()
功能从这里得到解决方案:http://www.ordinarycoder.com/paginate_links-class-ul-li-bootstrap/
答案 1 :(得分:0)
不要将get_posts()
用于分页查询。 get_posts
适用于非分页查询,但不适用于分页查询。
问题是,get_posts
仅返回$posts
的{{1}}属性,而不是完整对象。此外,WP_Query
将get_posts()
传递给'no_found_rows'=> true
,合法地打破了分页。
由于WP_Query
使用get_posts
,我们不妨使用WP_Query
返回我们查询分页所需的所有内容。请记住,我们需要将WP_Query
参数添加到查询中才能将其分页
我们可以按照以下方式重写您的查询
paged
您需要以某种方式将$args= [
'paged' => get_query_var( 'paged' ),
// Add any additional arguments here
];
$q = new WP_Query( $args );
// Run your loop
if( $q->have_posts() ) {
echo '<div class="row">';
$i=0;
while ( $q->have_posts() ) {
$q->the_post();
$i++;
if($i%4==0)
echo '</div><div class="row">';
get_template_part('loop');
}
wp_bs_pagination();
wp_reset_postdata();
}
传递给$q->max_num_pages
以设置自定义查询的分页,但我不知道该功能,因此我无法为您提供准确的解决方案。