首先,不要使用query_posts
.
代码中没有分页函数。如果你想分页工作,这是一个大问题也没有分页参数query_posts
(您不应该使用)参数简单的分页功能,如next_posts_link
如果没有复杂的筛选,可能对您的情况无效,因为这些依赖于主查询,而您正在为该查询以外的内容分页另外,我不明白你怎么会试图把这些分成五个(%3不会那样做???)。
我真的不明白这段代码是如何尝试实现您所描述的功能的,但这里有一个提纲,可以帮助您朝着正确的方向开始。我没有做任何努力来复制您需要的标记。您应该能够自己将其应用到循环中。
// set pagination
$page = (!empty($_GET[\'catp\'])) ? $_GET[\'catp\'] : 1;
// pull catagories
$cats = get_categories();
// break them into blocks of 5
$cats = array_chunk($cats,5);
// grab the five category IDs we need for the query
$ids = wp_list_pluck($cats[$page - 1],\'term_id\');
// query for the posts in those categories
$args = array(
\'category__in\' => $ids,
\'ignore_sticky_posts\' => true
);
$incats = new WP_Query($args);
// Minimal Loop; proof of concept only
if ($incats->have_posts()) {
while ($incats->have_posts()) {
$incats->the_post();
the_title();
echo \'<br/>\';
}
}
// paginate
$page_args = array(
\'base\' => \'%_%\',
\'format\' => \'?catp=%#%\',
\'total\' => count($cats),
\'current\' => $page,
\'show_all\' => False,
\'end_size\' => 1,
\'mid_size\' => 2,
\'prev_next\' => True,
\'prev_text\' => __(\'« Previous\'),
\'next_text\' => __(\'Next »\'),
\'type\' => \'plain\',
);
echo paginate_links($page_args);