我的分页不适用于WP_Query()
。
我总共有三个帖子。第1页正确显示所有三个帖子。但第2页显示相同的三个帖子。事实上,不应该有第2页,因为第1页已经显示了所有三个帖子。
可能出现什么问题?
。
循环index.php
<?php
$query = new WP_Query('cat=1');
if ($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();
the_title();
endwhile;
endif;
?>
<?php my_pagination(); ?>
。
。
functions.php
if ( ! function_exists( 'my_pagination' ) ) :
function my_pagination() {
global $wp_query;
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'prev_next' => True,
'total' => $wp_query->max_num_pages
) );
}
答案 0 :(得分:0)
主循环中的查询变量为$query
,而您的分页中的查询变量为$wp_query
。尝试使用$query
代替$wp_query
。
例如:
if ( ! function_exists( 'my_pagination' ) ) :
function my_pagination() {
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'prev_next' => True,
'total' => $query->max_num_pages
) );
}
注意:您的代码似乎缺少endif;
答案 1 :(得分:0)
尝试使用此代码进行查询:
global $wp_query;
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$wp_query = new WP_Query('cat=1&paged=' . $paged);
if ($wp_query->have_posts()) :
while ($wp_query->have_posts()) : $wp_query->the_post();
the_title();
endwhile;
endif;
my_pagination();
如果它仍然不起作用(根据上下文可能会发生),请尝试替换:
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
带
$paged = get_query_var('page') ? get_query_var('page') : 1;