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

使用add_permastruct自定义多自定义文章类型URL致常规文章404

问题解决:WordPress自定义分类法导致常规文章/页面404

问题背景

在WordPress 6.1环境下,通过代码创建了company、product两个自定义文章类型,以及country自定义分类法,期望实现的URL结构如下:

  • 自定义文章类型:%country%/%company_postname%、%country%/%product_postname%
  • 常规文章/页面:www.example.com/%postname%

已通过$wp_rewrite相关代码搭配post_type_link过滤函数生成了自定义URL,但常规文章和页面出现404错误。

排查过程

  • 尝试为文章和页面添加add_permastruct,未解决问题
  • 切换为Plain permalink(www.example.com/?p=123)时,所有内容加载正常,排除内容本身或模板逻辑问题,锁定重写规则冲突
  • 确认常规文章/页面未使用single.php或page.php,仅调用index.php,排除模板文件导致的404

根源与解决方案

问题出在country自定义分类法的重写配置:

'rewrite' => array('slug' => '/', 'with_front' => FALSE)

将分类法的slug设为/会覆盖根路径的重写规则,导致WordPress无法识别常规文章/页面的%postname%结构。

解决步骤:

  1. 移除该配置中的'slug' => '/',可改为默认配置或指定非根路径的slug,示例:
// 方案1:保留with_front设置,使用默认slug
'rewrite' => array('with_front' => FALSE)
// 方案2:指定自定义slug
'rewrite' => array('slug' => 'country', 'with_front' => FALSE)
  1. 进入WordPress后台→设置→固定链接,无需修改任何选项,直接点击「保存更改」刷新重写规则

完成后,常规文章和页面即可恢复正常访问,自定义文章类型的URL结构也能正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:30:18