wp插件中的自定义端点

问题描述

如何在wodpress插件中实现自定义端点

http://example.com/classroom/group/%7Bgroup_id%7D

我想在域名后的根级别设置/classroom/,它将加载插件的课堂模板和组的组模板。

所以这里需要两个模板来加载自定义 url。

http://example.com/classroom/ 将加载课堂模板和 http://example.com/classroom/group/1 将加载组模板。

解决方法

首先制作一个标题为“课堂”的页面。这将成为您的 /classroom 路线。然后创建另一个标题为“组”的页面。将课堂页面设为该页面的父页面。结果,这个页面 slug 变成了 /classroom/group。现在所有 /classroom/group/id 请求都来到您的群组页面。在此页面中,您的插件需要获取 URL(例如使用 $wp->request,see)并提取其中的 id 部分。根据该 ID 加载您的模板。

,

您可以为教室创建自定义帖子类型,并使用这样的文件名为其分配模板

single-classroomcustomposttype.php

此处为 template hierarchy 的 Codex 详细信息

要创建分层的自定义帖子类型,您必须在 page-attributes 数组中设置 supports,并将 hierarchical 标志设置为 true

要为 Groups 加载不同的模板,我认为最简单的解决方案是在 single-classroomcustomposttype.php

中使用 if 语句
if( $post->post_parent != 0 ) {
    // not top level
} else {
    // top level page
}