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

WordPress自定义后台删除按钮Ajax请求未触发后端函数问题

故障成因

一共3个核心问题导致后端逻辑无法触发、功能异常:

  1. 未注册WordPress AJAX动作钩子。WordPress的admin-ajax.php不会自动匹配同名处理函数,必须通过wp_ajax_<action名>(后台登录态请求)、wp_ajax_nopriv_<action名>(前台未登录请求)钩子把请求和处理函数绑定,你只定义了DeleteProject函数但没挂载钩子,系统根本不会调用这个函数。
  2. 前端jQuery AJAX写法存在语法错误。你写的$.post(ajaxurl, {参数}), function(){}把成功回调函数放在了$.post()的括号外面,相当于调用$.post时没有传入回调参数,括号闭合错误会导致JS执行逻辑异常,请求参数可能没有被正常提交。
  3. 后端SQL语句语法错误。DELETE语句缺少必填的FROM关键字,就算请求正常到达后端,也会执行失败,无法删除数据。
修复方案

按以下步骤调整代码即可:

  • 修正前端JS的语法错误,把回调函数移入$.post的参数列表内,可增加错误捕获方便后续排错;不推荐直接用PHP短标签输出ajaxurl,如果服务器未开启短标签支持会导致地址错误,优先用wp_localize_script注入全局变量,临时用短标签要先确认服务器配置。
  • 在后端处理函数定义前,添加对应AJAX动作的钩子注册,后台操作仅需登录态钩子即可,同时补充权限校验避免越权操作。
  • 修正SQL语法,补上FROM关键字,不要硬编码数据库表前缀,用$wpdb->prefix动态获取,同时对传入的ID参数做整数强转,进一步提升安全性。
  • 后端请求终止用WordPress官方推荐的wp_die()替代原生die(),兼容性更好。

修正后前端代码

<td><button value="2" onclick="del(this.value)">Delete Project 2 Names</button></td>

<script>        
var ajaxurl = '<?=admin_url('admin-ajax.php'); ?>';
function del(val){
    var CellNum = val;
    console.log(CellNum);
    $.post(
        ajaxurl, 
        {
            action: 'DeleteProject',
            data: CellNum,
        }, 
        function (data, status) {
            console.log('请求返回:', data, status);
            // 这里可补充删除成功后的页面交互,比如移除对应行、弹出提示
        }
    ).fail(function(xhr, textStatus, errorThrown){
        console.log('请求异常:', errorThrown);
    });
}
</script>

修正后后端custom_function.php代码

// 注册后台登录态AJAX钩子
add_action('wp_ajax_DeleteProject', 'DeleteProject');

function DeleteProject()
{ 
    global $wpdb;
    // 权限校验:仅允许管理员操作
    if (!current_user_can('manage_options')) {
        wp_die('权限不足');
    }

    $DelNum = intval($_POST['data']); // 强转整数,防注入
    // 补全DELETE语法,动态读取表前缀
    $wpdb->query($wpdb->prepare(
        "DELETE FROM {$wpdb->prefix}projectsignup1 WHERE ProjectNumber = %d", 
        $DelNum
    ));

    echo '删除完成';
    wp_die();
}

可选优化:生产环境建议增加WordPress nonce校验,防止CSRF跨站请求伪造攻击;如果站点开了OPcache、页面缓存,改完代码记得清缓存再测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:00:57