要按照指定的模式对自定义文章类型进行分页,我们可以使用WordPress提供的函数和方法来实现。以下是一个示例代码:
is_main_query() && is_post_type_archive('custom_post_type')) {
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$query->set('paged', $paged);
$query->set('posts_per_page', 10); // 每页显示的文章数量
}
}
add_action('pre_get_posts', 'custom_post_type_pagination');
// 在模板中显示分页导航
function custom_post_type_pagination_nav() {
global $wp_query;
$total_pages = $wp_query->max_num_pages;
if ($total_pages > 1) {
$current_page = max(1, get_query_var('paged'));
echo '';
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => '/page/%#%',
'current' => $current_page,
'total' => $total_pages,
'prev_next' => true,
'prev_text' => __('« Previous'),
'next_text' => __('Next »'),
));
echo '';
}
}
在上面的代码中,我们首先使用pre_get_posts
钩子来修改主查询($query->is_main_query()
)的参数,以便在自定义文章类型的存档页面上实现分页。我们使用get_query_var('paged')
获取当前页码,并使用set()
方法将其设置为查询参数中。我们还可以使用set()
方法设置每页显示的文章数量。
然后,在模板文件中调用custom_post_type_pagination_nav()
函数来显示分页导航。我们使用paginate_links()
函数来生成分页链接,其中包括上一页和下一页的链接。我们还可以根据需要自定义分页导航的样式。
请注意,上述代码中的custom_post_type
应替换为你自己的自定义文章类型的名称。