我正在尝试执行基本功能,可以在一个页面上为不同的自定义帖子类型实现多个分页。
最初我尝试通过自定义分页来完成。例如,现在我已将分页号作为 url 参数传递。
/release/?page_news=1
/release/?page_news=2 ...
/release/?page_resource=1
/release/?page_resource=2 ...
但是看起来很笨拙。 我想它应该看起来像
/发布/新闻/
/发布/新闻/2 ...
/发布/资源/
/发布/资源/2 ...
如果有人对这种情况有更好的方法,请告诉我。
我在下面尝试让它工作。
注册查询变量:代码使用
var1
过滤器添加 var2
和 query_vars
作为自定义查询变量。
重写规则:创建自定义重写规则,匹配格式为
/payments-slug/var1-value/var2-value/
的 URL,并使用适当的查询参数将其重写为相应的 index.php
。
<?php
global $wp;
@$wp->add_query_var('var1');
@$wp->add_query_var('var2');
add_filter('query_vars', 'wpse12965_query_vars');
function wpse12965_query_vars($query_vars)
{
$query_vars[] = 'var1';
$query_vars[] = 'var2';
return $query_vars;
}
add_action('init', 'wpse12065_init');
function wpse12065_init()
{
global $payments_page_id;
$post = get_post($payments_page_id);
$slug = @$post->post_name;
add_rewrite_rule(
$slug . '(/([^/]+))?(/([^/]+))?/?(/([^/]+))?(/([^/]+))?/?',
'index.php?pagename=' . $slug . '&var1=$matches[2]&var2=$matches[3]',
'top'
);
}
总页数和范围:它计算总页数并设置要显示的页面链接数的范围。
分页循环:循环遍历总页数并生成页码列表作为链接。当前页面突出显示,而其他页面则被链接。
输出:每个页面链接都指向基于分类名称 (
$taxName
) 和页码的 URL。
<div class="pagination">
<div class="moreCenter animateme animated">
<div class="paginationBox">
<?php
$totalPages = $wc_query->max_num_pages;
$range = 4;
$showitems = ($range * 2) + 1;
for ($i = 1; $i <= $totalPages; $i++) {
if (1 != $totalPages && (!($i >= $paged + $range + 1 || $i <= $paged - $range - 1) || $totalPages <= $showitems)) {
$page_url = get_permalink() . '' . $taxName . '/' . $i;
echo ($paged == $i) ? "<span class=\"current\">" . $i . "</span>" : "<a href='" . $page_url . "' class=\"inactive\">" . $i . "</a>";
}
}
?>
</div>
</div>
</div>