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

WordPress:点击删除页面快捷按钮后重定向用户

问题分析与修复方案

你的代码核心问题是用错了wp_redirect过滤器的参数——这个钩子的第二个参数是HTTP重定向状态码,不是$post_id,所以你函数里的$post_id是未定义的无效值,导致条件判断完全不生效,自然不会触发重定向。

另外,判断get_post_status($post_id) === 'trash'的时机也不对:当用户点击删除链接触发跳转时,页面还没被移入回收站,此时状态还是publish或其他原始状态,这个条件永远不成立。

修正后的代码

我们改用WordPress专门处理文章/页面操作跳转的redirect_post_location过滤器,它的参数包含正确的$post_id,且触发时机刚好是操作完成后准备跳转的节点:

function custom_admin_bar_delete_link( $wp_admin_bar ) {
    global $post;
    if( is_admin() || ! is_object( $post ) )
        return;
    if ( ! current_user_can( 'delete_pages' ) )
        return;
    if ( $post->post_type != 'page' )
        return;
    $args = array(
        'id'    => 'delete_link',
        'title' => 'Delete this page',
        'href'  => get_delete_post_link( $post->ID ),
        'meta'  => array( 'class' => 'delete-link' )
    );
    $wp_admin_bar->add_node( $args );
}
add_action( 'admin_bar_menu', 'custom_admin_bar_delete_link', 999 );

// 替换原有的重定向函数
function custom_page_delete_redirect( $location, $post_id ) {
    $post = get_post( $post_id );
    // 检查当前操作是删除页面(移到回收站)
    if ( 'page' === $post->post_type && isset( $_GET['action'] ) && 'trash' === $_GET['action'] ) {
        // 重定向到页面列表页(即「My Pages」页面)
        return admin_url( 'edit.php?post_type=page' );
    }
    // 处理永久删除页面的场景
    if ( 'page' === $post->post_type && isset( $_GET['action'] ) && 'delete' === $_GET['action'] && isset( $_GET['force'] ) && $_GET['force'] === '1' ) {
        return admin_url( 'edit.php?post_type=page' );
    }
    return $location;
}
add_filter( 'redirect_post_location', 'custom_page_delete_redirect', 10, 2 );

关键说明

  1. redirect_post_location钩子:专门用于修改文章、页面在编辑、删除、更新等操作后的跳转地址,参数$location是默认跳转地址,$post_id是当前操作的文章/页面ID,完全匹配需求场景。
  2. 操作类型判断:通过$_GET['action']区分「移到回收站」和「永久删除」两种操作,确保所有删除场景都能重定向到目标页面。
  3. 兼容性:保留了原有的admin bar按钮逻辑,只修改重定向部分,不影响原有功能。

内容的提问来源于stack exchange,提问作者Şenol Üstün

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:15:31