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

WordPress分页.current类不更新问题求助

解决WordPress自定义分页.current类不更新的问题

原因1:自定义查询未正确传递分页参数

如果你的分页基于自定义WP_Query而非主循环,必须确保查询中包含paged参数,否则WordPress无法识别当前页码,导致.current类始终停留在第一页。

解决步骤:

  • 针对常规页面,在自定义查询中添加paged参数:
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$custom_query = new WP_Query([
    // 其他查询参数(如post_type、posts_per_page等)
    'paged' => $paged
]);
  • 如果是静态首页(设置为首页的独立页面),需改用page参数:
$paged = get_query_var('page') ? get_query_var('page') : 1;

原因2:分页HTML结构嵌套导致样式匹配失效

你的代码中设置了before_page_number和after_page_number,会给所有页码添加额外的<span>嵌套,导致原本针对.current类的CSS选择器无法正确匹配。

调整方案1:移除额外的span包裹

如果不需要外层span,直接删除before_page_number和after_page_number参数:

function tevent_pagination() {
    $allowed_html = [
        "span" => [
            "class" => []
        ],
        "a" => [
            "class" => [],
            "href" => []
        ]
    ];

    $args = [];

    printf("<nav class='pagination'>%s</nav>", wp_kses(paginate_links($args), $allowed_html));
}

调整方案2:保留span包裹并修正CSS选择器

如果必须保留外层span,修改CSS选择器适配嵌套结构:
原样式可能为:

.pagination span.current { /* 你的样式代码 */ }

需改为:

.pagination span.current span { /* 你的样式代码 */ }

原因3:WP_KSES过滤规则异常(可能性低)

虽然你的$allowed_html已允许class属性,但可临时移除wp_kses测试是否为过滤问题:

printf("<nav class='pagination'>%s</nav>", paginate_links($args));

如果此时.current类正常更新,说明过滤规则存在问题,可调整$allowed_html为:

$allowed_html = [
    "span" => [
        "class" => true // 允许所有class属性值
    ],
    "a" => [
        "class" => true,
        "href" => true
    ]
];

内容的提问来源于stack exchange,提问作者Hashim Abbas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:11:01