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

WordPress保存/发布文章后重定向至原分页文章列表

解决WordPress编辑文章后重定向回原分页的问题

问题分析

你之前的代码失效主要有两个原因:

  • 依赖$_SERVER['HTTP_REFERER']不可靠:提交保存/发布表单时,请求的来源是编辑页面(post.php),而非最初的文章列表分页页面,所以无法获取到正确的分页URL。
  • 钩子时机或判断逻辑错误:第二段代码中wp_after_insert_post执行时,WordPress已经默认发起重定向,且get_redirect_url里的$_GET['post_type']判断逻辑不成立,导致重定向到错误页面。

可行解决方案

通过会话(Session)存储分页参数的方式实现,步骤如下:

  1. 启用WordPress会话支持,用于存储分页页码
  2. 在进入编辑页面时,从来源URL中提取分页参数并存入会话
  3. 在保存/发布文章后,从会话中取出分页参数,构造正确的重定向URL

以下是完整代码:

// 启用会话支持
add_action('init', function() {
    if (!session_id()) {
        session_start();
    }
});

// 进入编辑页面时,存储来源分页的页码
add_action('load-post.php', function() {
    $referer = wp_get_referer();
    // 检查来源是否是文章列表页面(edit.php)且包含分页参数
    if (strpos($referer, 'edit.php') !== false && strpos($referer, 'paged=') !== false) {
        parse_str(parse_url($referer, PHP_URL_QUERY), $query_vars);
        if (isset($query_vars['paged'])) {
            $_SESSION['post_list_paged'] = $query_vars['paged'];
            // 同时存储文章类型,适配自定义文章类型
            $_SESSION['post_list_type'] = isset($query_vars['post_type']) ? $query_vars['post_type'] : 'post';
        }
    }
});

// 修改保存后的重定向地址
add_filter('redirect_post_location', function($location) {
    // 检查会话中是否存储了分页参数,且当前操作的是目标文章类型
    if (isset($_SESSION['post_list_paged'], $_SESSION['post_list_type'])) {
        $post_type = get_post_type();
        if ($post_type === $_SESSION['post_list_type']) {
            // 构造文章列表分页URL
            $redirect_url = admin_url("edit.php?post_type={$post_type}&paged={$_SESSION['post_list_paged']}");
            // 清除会话中的参数,避免后续影响
            unset($_SESSION['post_list_paged'], $_SESSION['post_list_type']);
            return $redirect_url;
        }
    }
    // 默认返回原重定向地址
    return $location;
});

代码说明

  • 会话启用:确保WordPress能使用会话存储临时数据,避免依赖不可靠的HTTP_REFERER。
  • 存储分页参数:在编辑页面加载时,解析来源URL,提取paged和post_type参数并存入会话,确保只在从文章列表进入编辑时才存储。
  • 重定向处理:通过redirect_post_location过滤器,覆盖默认重定向地址,使用会话中存储的参数构造正确的分页列表URL,完成后清除会话参数避免干扰其他操作。

内容的提问来源于stack exchange,提问作者Ahmad Karimi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 21:12:42