WordPress站点如何显示无文章分类?解决分类URL404报错问题
解决WordPress无文章分类显示404的问题
下面提供两种实用方案,让无关联文章的分类页面返回空白内容而非404错误:
方案一:修改主题分类模板文件
- 找到当前激活主题的
category.php文件(如果主题没有这个文件,复制archive.php并重命名为category.php)。 - 打开文件后,在模板逻辑的最开始位置添加判断:
<?php // 获取当前分类ID $cat_id = get_queried_object_id(); // 查询该分类下是否存在文章 $post_exists = get_posts(array( 'category__in' => array($cat_id), 'post_type' => 'post', 'posts_per_page' => 1, 'fields' => 'ids' )); if (empty($post_exists)) { // 无文章时输出空白内容 echo ''; exit; } // 原有模板逻辑继续执行 ?>
- 保存文件后,访问无文章的分类URL,就会显示空白页面。
方案二:通过functions.php添加钩子拦截
如果不想修改模板文件,可以在主题的functions.php中添加以下代码:
add_action('template_redirect', 'handle_empty_category'); function handle_empty_category() { // 判断当前是否为分类页面且无文章 if (is_category() && !have_posts()) { // 重置404状态为正常200 global $wp_query; $wp_query->is_404 = false; status_header(200); // 输出空白内容,也可替换为自定义提示HTML echo ''; exit; } }
这段代码会在页面跳转前检查分类是否有文章,无文章时强制返回200状态并输出空白,避免触发404。
内容的提问来源于stack exchange,提问作者aross
相关产品推荐
相关产品推荐

