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

WordPress拼接URL后wp_redirect失效仅跳转首页问题求助

问题根因

你的代码跳转到首页是因为$authorName变量实际取到了空值:

  • trashed_post钩子触发时不在前端文章循环上下文内,直接调用get_the_author_meta()不传入指定文章/用户ID时,无法正确获取被删文章的作者信息,最终拼接出的跳转地址只有首页域名部分。
  • 手动拼接作者页地址的写法兼容性差,一旦站点修改了固定链接规则,地址就会失效。
可用修复代码

替换你原有代码即可:

add_action( 'trashed_post', 'dex_redirect_after_trashing', 10 );
function dex_redirect_after_trashing( $post_id ) {
    // 读取被删除文章对应的作者ID
    $author_id = get_post_field( 'post_author', $post_id );
    // 调用WordPress原生方法生成作者归档页链接,自动适配固定链接规则
    $target_url = get_author_posts_url( $author_id );
    wp_redirect( $target_url );
    exit;
}
注意事项
  • trashed_post钩子默认会将被移入回收站的文章ID作为参数传入回调,必须在函数定义处声明接收$post_id参数,才能获取到当前操作的文章数据。
  • 如果你给get_delete_post_link()传了第3个参数$force_delete = true,也就是删除文章时直接跳过回收站永久删除,需要把挂载的钩子换成deleted_post才能正常触发跳转。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:21:18