如何通过functions.php在WordPress中排除指定分类及作者存档页
WordPress指定分类页、作者页重定向到首页解决方案
原有代码失效原因
你编写的代码无法生效有两个核心问题:
- 仅修改了WP查询对象的
is_home标识,没有触发实际的重定向动作,请求仍会加载对应分类、作者页的模板- 自定义函数没有挂载到WordPress的执行钩子上,代码全程不会被触发运行
可用实现代码
/* 重定向指定分类页、所有作者存档页到首页 */ add_action('template_redirect', 'custom_restrict_pages_redirect'); function custom_restrict_pages_redirect() { // 替换为你需要限制访问的分类别名数组 $target_categories = array('category1', 'category2', 'category3'); if (is_category($target_categories) || is_author()) { // 第二个参数302为临时重定向,确认规则可用后可改为301永久重定向 wp_redirect(home_url(), 302); exit; } }
使用说明
- 将上述代码添加到当前启用主题的
functions.php文件末尾即可生效 - 可自行修改
$target_categories数组中的值,增删需要限制访问的分类别名 - 测试阶段建议使用302临时重定向,避免浏览器缓存错误的重定向规则,确认功能正常后可改为301永久重定向被搜索引擎收录
- 修改后如果不生效,清空站点缓存、浏览器缓存后再次测试即可
内容的提问来源于stack exchange,提问作者Merkava420
相关产品推荐
相关产品推荐

