WordPress author.php模板访问返回404,无权限改固定链接如何解决
结合你不能修改固定链接的限制,以及author.php仅为静态内容的情况,我整理了几个常见的问题点和排查思路:
URL格式与当前固定链接结构不匹配
如果你没权限修改固定链接,WordPress大概率还在使用默认的「朴素」固定链接结构(比如?author=用户ID),而你访问的/author/admin这类属于「美观链接」路径,只有当固定链接设置为「文章名」等美观格式时才生效。你可以先试试用默认格式访问作者页:http://vagrant.local/?author=1(把1换成对应用户的ID,比如管理员的ID通常是1)。如果这个链接能加载你的静态author.php,那问题就出在你用了美观链接的路径,但当前固定链接不支持这种格式。author.php文件位置错误
WordPress只会在主题根目录下查找模板文件,如果你把author.php放在了子文件夹(比如/templates或/parts)里,系统是找不到的。请确认文件路径是wp-content/themes/你的主题名/author.php。如果确实需要放在子文件夹,你得在主题的functions.php里加一段代码告诉WordPress去哪里找它:add_filter('template_include', function($template) { if (is_author()) { return get_stylesheet_directory() . '/你子文件夹的路径/author.php'; } return $template; });URL里的作者别名和实际用户的
user_nicename不匹配
WordPress的作者URL是基于用户的user_nicename(用户名/显示名的标准化版本)生成的,不是直接用用户名或显示名。比如用户显示名是「张三」,他的user_nicename可能是zhang-san(全小写、空格转横杠)。你可以登录WP后台,进入「用户 > 所有用户」编辑对应用户,查看「昵称」和「用户URL」字段(别名就来自这里)。如果你访问的是/author/admin,但用户的实际别名是administrator,那肯定会404。插件或主题代码覆盖了作者档案规则
有些安全插件、SEO插件,或者主题自定义代码可能会禁用作者档案,或者修改了重写规则导致WordPress识别不了/author/路径。你可以先临时禁用所有插件,看看404是否消失——如果消失了,再逐个启用插件找出问题根源。另外也检查下主题functions.php里有没有用is_author()、author_rewrite_rules或pre_get_posts这类钩子修改作者查询的代码。重写规则未刷新(即使没改固定链接)
有时候即使没修改固定链接,WordPress的重写规则也可能出现错乱。既然你不能进后台刷新,那可以通过代码临时刷新:在主题functions.php里加一行代码(测试完记得删掉):flush_rewrite_rules();访问一次网站后就删掉这行,它会重置WordPress的重写规则到默认状态。
内容的提问来源于stack exchange,提问作者Subrata Sarkar

