You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress自定义文章类型分页:添加?pag=页码URL参数

解决自定义文章类型Courses的分页URL格式问题

我来一步步帮你搞定这个分页URL的需求,让自定义文章类型的分页既符合你要的格式,又能处理手动输入参数的跳转:

1. 调整查询参数的获取与WP_Query配置

首先我们要把查询逻辑切换到你想要的pag参数上,同时兼容WP_Query的内部分页机制:

<?php
// 获取自定义的pag参数,无参数时默认显示第1页
$pag = (get_query_var('pag')) ? get_query_var('pag') : 1;

// 把pag的值传给WP_Query的paged属性(WP内部依赖这个参数识别分页)
$args = array(
    'post_type' => 'courses',
    'posts_per_page' => 6,
    'paged' => $pag,
    'orderby' => 'title',
    'order' => 'ASC'
);
$courses = new WP_Query($args);

if($courses->have_posts()): 
    while($courses->have_posts()): $courses->the_post();
        <!-- HTML loop 内容 -->
    endwhile; 
?>

2. 配置paginate_links生成目标URL格式

修改分页链接的生成规则,让它输出/courses/page/3/?pag=3这种格式:

<div class="pagination">
    <?php
    echo paginate_links(array(
        'total' => $courses->max_num_pages,
        // 构造基础URL:先拿到第一页的归档地址,再拼接pag参数模板
        'base' => trailingslashit(get_pagenum_link(1)) . '?pag=%#%',
        'format' => '', // 因为base已经包含参数格式,这里留空即可
        'current' => max(1, $pag), // 使用我们获取的pag值标记当前页码
        'prev_text' => '&laquo; 上一页',
        'next_text' => '下一页 &raquo;'
    ));
    ?>
</div>
<?php endif; wp_reset_postdata(); ?>

3. 添加重定向逻辑,处理手动输入参数的情况

要实现用户输入?pag=2时自动跳转到/courses/page/2/?pag=2,需要在主题的functions.php里加一段钩子代码:

add_action('template_redirect', 'courses_pag_redirect');
function courses_pag_redirect() {
    // 只针对courses自定义文章类型的归档页生效
    if (is_post_type_archive('courses')) {
        $pag = get_query_var('pag');
        // 如果pag参数存在且大于1,且当前URL没有page分页结构
        if ($pag && $pag > 1 && !is_paged()) {
            // 构造正确的跳转URL
            $redirect_url = get_pagenum_link($pag) . '?pag=' . $pag;
            // 301永久重定向,兼顾SEO
            wp_redirect($redirect_url, 301);
            exit;
        }
    }
}

4. 注册自定义查询参数

最后要让WordPress正确识别pag这个参数,在functions.php里添加参数注册:

add_filter('query_vars', 'register_courses_pag_var');
function register_courses_pag_var($vars) {
    $vars[] = 'pag';
    return $vars;
}

把这些修改整合后,你的courses分页就会完全符合需求:分页链接自动生成/courses/page/X/?pag=X格式,用户手动输入?pag=X也会自动跳转到对应的规范分页页面。

内容的提问来源于stack exchange,提问作者Germán Salamanca Viveros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:07:38