我有一个按日期顺序显示的事件列表,过去的事件被隐藏。
问题是总共有 3 页的事件,但是一旦过去的事件被隐藏,只有足够的事件来填满 2 页。但是,第三个空白页面仍然存在,可以通过分页链接访问。
这是我的事件列表页面上的代码:
<?php $today = date("Ymd");?>
<?php $paged = 1;
if ( get_query_var('paged') ) $paged = get_query_var('paged');
if ( get_query_var('page') ) $paged = get_query_var('page');
query_posts( '&post_type=upcomingevents&paged=' . $paged );?>
<?php $loop = new WP_Query( array( 'post_type' => 'upcomingevents', 'paged'=> $paged, 'meta_key' => 'start_date', 'meta_compare' => '>=', 'meta_value' => $today, 'orderby' => 'meta_value_num', 'order' => 'ASC' )); ?>
<?php while ( $loop->have_posts('post_type=upcomingevents') ) : $loop->the_post(); ?>
这是我的函数文件中的分页代码:
function paginate() {
global $wp_query, $wp_rewrite;
$wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
$pagination = array(
'base' => @add_query_arg('page','%#%'),
'format' => '',
'total' => $wp_query->max_num_pages,
'current' => $current,
'show_all' => true,
'type' => 'plain'
);
if ( $wp_rewrite->using_permalinks() ) $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
if ( !empty($wp_query->query_vars['s']) ) $pagination['add_args'] = array( 's' => get_query_var( 's' ) );
echo paginate_links( $pagination );
}
我还发现了第二个问题,当移动到结果的第 2 页或第 3 页时,当前的 CSS 类仍然在分页中的数字 1 上,因此无法判断您在哪个页面上。
任何建议将不胜感激,非常感谢。