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

WordPress注册自定义文章类型遇Slug异常问题求助

WordPress自定义文章类型Slug异常问题解决

可能原因

  • 多连字符slug触发重写规则冲突:WordPress重写系统对包含多个短连字符段的slug,可能和现有页面、其他自定义类型或插件的规则产生冲突。
  • Post Type名称与Slug重复:你注册的post type名称和slug均为web-to-print-glossaries,可能导致内部路由解析混淆。
  • 重写规则未正确刷新:修改slug后需刷新规则才能生效,若未操作可能导致新slug不生效。

解决步骤

1. 分离Post Type注册名称与Slug

将post type的注册名称改为下划线格式(避免连字符),保留目标slug不变,避免名称与slug冲突:

$labels = [
    "name" => esc_html__( "Web to Print Glossary" ),
    "singular_name" => esc_html__( "Web to Print Glossary" ),
];

$args = [
    "label" => esc_html__( "Web to Print Glossary" ),
    "labels" => $labels,
    "description" => "",
    "public" => true,
    "publicly_queryable" => true,
    "show_ui" => true,
    "show_in_rest" => true,
    "rest_base" => "web-to-print-glossaries",
    "rest_controller_class" => "WP_REST_Posts_Controller",
    "rest_namespace" => "wp/v2",
    "has_archive" => false,
    "show_in_menu" => true,
    "show_in_nav_menus" => true,
    "delete_with_user" => false,
    "exclude_from_search" => false,
    "capability_type" => "post",
    "map_meta_cap" => true,
    "hierarchical" => false,
    "can_export" => false,
    "rewrite" => [ "slug" => "web-to-print-glossaries", "with_front" => true ],
    "query_var" => true,
    "supports" => [ "title", "editor", "thumbnail" ],
    "show_in_graphql" => false,
];

// 将post type名称改为下划线格式,与slug区分
register_post_type( "webtoprint_glossaries", $args );

2. 刷新重写规则

修改代码后,进入WordPress后台 → 设置 → 固定链接,无需修改任何选项,直接点击「保存更改」,触发重写规则刷新。

3. 排查冲突

若上述步骤无效,可进行以下操作:

  • 暂时禁用所有插件,测试slug是否正常,排查插件冲突。
  • 切换到默认主题(如Twenty Twenty-Four),验证是否为主题重写规则导致的问题。
  • 检查主题functions.php或自定义插件中的自定义重写规则,确认是否与当前slug冲突。

4. 简化Slug结构(备选)

若冲突无法解决,可尝试简化slug,比如改为web-print-glossaries,减少连字符数量以降低冲突概率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:40:30