如何解决WordPress自定义分类sategory访问时的404错误?
自定义分类访问404问题排查
我创建了名为coupons的自定义文章类型,代码如下:
$args = array( 'label' => __('Купоны', 'sp'), 'labels' => $labels, 'supports' => array('title', 'custom-fields', 'revisions', 'thumbnail', 'excerpt'), 'hierarchical' => true, 'public' => false, 'show_ui' => true, 'menu_position' => 2, 'show_in_admin_bar' => true, 'has_archive' => true, 'capability_type' => 'post', 'rewrite' => array('slug' => 'coupons', 'with_front' => false) ); register_post_type('coupons', $args);
同时创建了关联coupons的自定义分类sategory,代码如下:
$args = array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'sategory', 'with_front' => false), ); register_taxonomy('sategory', array('coupons'), $args);
访问example.com/sategory/tax1时出现404错误,且已创建对应的模板文件taxonomy-sategory.php,可能的问题原因如下:
- 自定义文章类型
public属性设置错误:当前coupons的public设为false,这会导致该文章类型在前端不可访问,关联的分类页面也无法正常解析路由。需将'public' => false改为'public' => true,或者至少添加'publicly_queryable' => true确保前端可查询。 - 未刷新WordPress固定链接规则:修改自定义文章类型或分类后,必须刷新重写规则才能让新的路由生效。操作方式:进入后台「设置」→「固定链接」,任意切换一种链接格式后保存即可。
- 分类slug存在冲突:
sategory这个slug可能与现有页面、文章、其他自定义类型的slug重复,或者服务器根目录下存在同名物理目录,导致服务器优先解析物理资源而非WordPress路由。可尝试修改分类slug为其他名称测试。 - 自定义分类
public属性缺失:虽然register_taxonomy的public默认值为true,但显式添加'public' => true到分类的$args中,可避免因其他参数影响导致分类不可公开访问。 - 模板文件命名错误:确认模板文件名确实为
taxonomy-sategory.php,注意拼写与分类slug完全一致(此处是sategory而非常见的category),避免因拼写错误导致WordPress无法匹配模板。
内容的提问来源于stack exchange,提问作者Шерзод Норов
相关产品推荐
相关产品推荐

