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

WordPress实现仅展示特定作者页面,其余页面自动跳转

解决WordPress特定作者页面访问限制问题

问题分析

你原代码的核心问题在于对is_author()函数的用法错误:

  • is_author()的参数用于指定要匹配的作者(支持ID、slug、名称或数组),不能直接传入否定判断逻辑
  • 代码中未定义$author变量,导致判断逻辑完全失效

正确解决方案

我们需要先确认当前页面是作者页面,再获取当前作者的信息,最后检查该作者是否在允许访问的列表中,不在则跳转首页。以下是修正后的代码:

function redirect_author_page() {
    // 仅在作者页面执行逻辑
    if ( is_author() ) {
        // 获取当前访问的作者对象
        $current_author = get_queried_object();
        // 允许访问的作者slug列表(可替换为display_name或ID)
        $allowed_authors = array('name1', 'name2');
        
        // 检查当前作者是否不在允许列表内
        if ( ! in_array( $current_author->user_nicename, $allowed_authors ) ) {
            // 301永久重定向到首页
            wp_safe_redirect( home_url(), 301 );
            exit;
        }
    }
}
add_action('template_redirect', 'redirect_author_page');

代码说明

  • is_author():无参数调用时,仅判断当前页面是否为作者归档页面
  • get_queried_object():获取当前页面对应的作者对象,包含user_nicename(作者slug)、display_name(显示名称)、ID(用户ID)等字段,可根据需求替换判断字段
    • 若用作者ID判断:将$current_author->user_nicename改为$current_author->ID,$allowed_authors改为array(1, 2)(对应作者ID)
    • 若用显示名称判断:改为$current_author->display_name,数组放作者显示名
  • wp_safe_redirect():WordPress推荐的安全重定向函数,home_url()比get_option('home')更符合规范
  • exit:重定向后必须终止脚本执行,避免后续代码运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:36:05