我有一个用于事件的自定义帖子类型,并使用普通archive.php
模板以列出所有以前的事件。
问题是,我对内部的事件帖子类型使用自定义查询archive.php
像这样…
<?php
if ( is_post_type_archive(\'wr_event\') ) :
get_event_list( false, \'DSC\' );
else:
rewind_posts();
get_template_part( \'inc/posts\' );
endif;
?>
功能
get_event_list()
看起来像这样…
function get_event_list( $latest = true, $order = \'ASC\' ) {
echo \'<ul class="event-items">\';
$yesterday = time() - 24*60*60;
$compare = $latest ? \'>\' : \'<\';
$args = array(
\'post_type\' => \'wr_event\',
\'posts_per_page\' => \'posts_per_page\' => is_archive() ? 16 : -1,
\'meta_key\' => \'event_date\',
\'orderby\' => \'meta_value_num\',
\'order\' => $order,
\'meta_value\' => $yesterday,
\'meta_compare\' => $compare
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
get_template_part( \'inc/event\', \'item\' );
endwhile;
wp_reset_postdata();
echo \'</ul>\';
}
我正在使用相同的函数
get_event_list()
在我的
index.php
要列出所有事件,请在我的索引中列出所有事件。这就是为什么我
posts_per_page => -1
.
在我的archives.php
在我想使用相同模板的地方,我只想列出16个“事件”,并在下面分页。
我的functions.php
在我的搜索模板中,这确实可以很好地工作。但它不适用于此自定义存档。
function get_pagination_links( $type = \'plain\', $endsize = 1, $midsize = 1 ) {
global $wp_query, $wp_rewrite;
$wp_query->query_vars[\'paged\'] > 1 ? $current = $wp_query->query_vars[\'paged\'] : $current = 1;
// Sanitize input argument values
if ( ! in_array( $type, array( \'plain\', \'list\', \'array\' ) ) ) $type = \'plain\';
$endsize = (int) $endsize;
$midsize = (int) $midsize;
// Setup argument array for paginate_links()
$pagination = array(
\'base\' => @add_query_arg(\'paged\',\'%#%\'),
\'total\' => $wp_query->max_num_pages,
\'current\' => $current,
\'show_all\' => false,
\'end_size\' => $endsize,
\'mid_size\' => $midsize,
\'type\' => $type,
\'prev_next\' => false
);
return paginate_links( $pagination );
}
分页显示在“我的事件”下面,仅列出16个事件。但是,如果我单击第二页,将列出前16个事件的相同列表。
如何使分页与我的自定义帖子类型存档一起工作,有什么想法吗?