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

WordPress下实现跳过特定页面的自定义返回按钮方法咨询

利用WordPress钩子实现指定返回逻辑

完全可以通过步骤3的保存资料action来实现需求,核心思路是在用户保存资料时记录最初的来源页面(步骤1的directory页),再在步骤4的profile页面渲染返回链接时,根据记录决定跳转逻辑。

具体实现步骤

1. 追踪并保存原始来源页面

首先在用户进入profile页面(步骤2)时,判断是否来自directory页,若是则记录到session中;随后在保存资料的钩子触发时,把这个URL存入用户元数据:

// 追踪进入profile页的来源是否为directory
add_action('template_redirect', 'track_original_directory_source');
function track_original_directory_source() {
    if (is_page('member/profile') && wp_get_referer() && str_contains(wp_get_referer(), 'directory')) {
        session_start();
        $_SESSION['original_directory_url'] = wp_get_referer();
    }
}

// 保存资料时,把来源URL存入用户元数据
add_action('um_profile_updated', 'save_original_source_for_back_link'); // 替换为实际可用的保存钩子
function save_original_source_for_back_link($user_id) {
    if (isset($_SESSION['original_directory_url'])) {
        update_user_meta($user_id, 'original_back_url', $_SESSION['original_directory_url']);
        unset($_SESSION['original_directory_url']); // 清除session避免重复记录
    }
}

2. 渲染带逻辑的返回链接

在主题或插件的对应位置渲染返回链接,根据用户元数据判断跳转逻辑:

$current_user = get_current_user_id();
$original_back_url = get_user_meta($current_user, 'original_back_url', true);
?>
<a href="#" class="custom-back-link">返回</a>
<script>
    document.querySelector('.custom-back-link').addEventListener('click', function(e) {
        e.preventDefault();
        <?php if ($original_back_url) : ?>
            window.location.href = '<?php echo esc_url($original_back_url); ?>';
            <?php delete_user_meta($current_user, 'original_back_url'); // 跳转后清除元数据 ?>
        <?php else : ?>
            history.go(-1);
        <?php endif; ?>
    });
</script>
<?php

注意事项

  • 请将示例中的um_profile_updated替换为你实际可用的保存资料钩子,可通过插件文档或代码搜索工具确认钩子名称。
  • 使用session是为了精准匹配“directory→profile→编辑→保存”的路径链,避免其他场景干扰。
  • 跳转后清除用户元数据,防止后续进入profile页时错误跳转回directory。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:43:14