【问题标题】:Custom URL structure for wordpress custom post typewordpress 自定义帖子类型的自定义 URL 结构
【发布时间】:2017-12-08 15:31:33
【问题描述】:

我有两个自定义帖子类型,

register_post_type( 'classes', 
    array(
        .
        .
        'rewrite'   => array( 'slug' => 'classes', 'with_front' => false )
    ) 
);

register_post_type( 'lessons', 
    array(
        .
        .
        'rewrite'   => array( 'slug' => 'chapters', 'with_front' => false )
    ) 
);

我创建了一个自定义管理 UI 来管理(创建/更新/删除)这两种帖子类型,课程帖子类型被设计为班级帖子类型的子帖子类型。因此,每次有人创建课程时,都需要帖子类型类列表中的父帖子。

现在我的url结构有问题,

类的 URL 将是 site.dev/classes/class-post-name

课程的 URL 将是 site.dev/chapters/lesson-post-name 这也是我可以在 guid 列下的 wp_posts 表上看到的 URL

我怎样才能获得像下面这样也将存储为 guid 的 URL 结构? site.dev/classes/parent-post-post-name/chapters/lesson-post-name

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    Parent Post From Another Post Type and a new URL structure 将有助于实现结果。 lessons 帖子类型应为分层classes 应为非分层。在元框中值得注意的一件事是您不需要手动保存元框。 WordPress 自己检查字段名称 parent_id 并保存。

    【讨论】:

    • 我对该帖子中提到的重写规则有类似的设置,但规则lesson/([^/]+)/([^/]+)/? 的问题是第一个参数被忽略并且未验证为“有效的父帖子”所以你可以把任何东西放在那里,仍然会显示课程
    • @SymmetricsWeb 您是否从“设置”>“永久链接”停用并激活了永久链接
    • 您需要同时检查 index.php?course=$match[1]&lesson=$matches[2] 。所以它验证了这两个参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 2020-10-24
    • 1970-01-01
    相关资源
    最近更新 更多