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

未登录用户点击菜单链接无法跳转至WordPress登录页求助

问题分析与修复方案

核心问题

你的delete.php未加载WordPress核心运行环境,导致is_user_logged_in()、wp_redirect()这类WordPress内置函数无法生效,这是跳转失效的根本原因。同时代码存在语法错误,else块缺少闭合的}。

修复步骤

  1. 加载WordPress核心环境
    在PHP代码最顶部添加加载代码,确保WordPress函数能被调用:
<?php
// 根据站点实际路径调整wp-load.php的位置,根目录下直接用此路径
require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');

如果delete.php在子目录,需修改路径,比如子目录下可写../wp-load.php。

  1. 修正语法错误
    补全else块的闭合},保证条件判断结构完整。

  2. 优化登录跳转逻辑
    替换硬编码的登录URL,使用WordPress内置的wp_login_url()函数,实现登录后自动返回当前页面的效果,比固定URL更灵活。

完整修复后的代码

<?php
// 加载WordPress核心文件
require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');

if ( is_user_logged_in() ) {
    // 获取当前用户和站点信息,替换占位符
    $current_user = wp_get_current_user();
    $username = esc_html($current_user->user_login);
    $sitename = esc_html(get_bloginfo('name'));
    
    echo <<<RGN
    <form id="plugin_delete_me_shortcode_form" method="post">
        <p>
        WARNING!<br /><br />Are you sure you want to delete user $username from $sitename?
        </p>
    <p>
    <label for="plugin_delete_me_shortcode_password">
        Password
    </label>
    <input type="password" autocomplete="off" autofocus="autofocus" id="plugin_delete_me_shortcode_password" name="plugin_delete_me_shortcode_password" />
    </p>
    <p><input type="submit" value="Confirm Deletion" /></p>
    </form>
RGN;
    exit;
} else {
    // 跳转至登录页,登录后自动返回当前页面
    wp_redirect(wp_login_url($_SERVER['REQUEST_URI']));
    exit;
}
?>

额外补充了替换%username%和%sitename%的逻辑,让提示文本显示真实的用户和站点名称,避免占位符残留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:46:10