wordpress开发函数add_rewrite_endpoint(),添加一个端点,如/trackback/。

用法:

add_rewrite_endpoint( string $name, int $places, string|bool $query_var = true )

描述

添加端点会为所提供的位掩码指定的每个匹配位置创建额外的重写规则。例如:

add_rewrite_endpoint( 'json', EP_PERMALINK | EP_PAGES );

将添加一个新的重写规则以"json(/(.*))?/?$"对于每个描述永久链接(文章)或页面的永久结构。这被重写为"json=$match"其中$match是由端点正则表达式匹配的URL的一部分(例如:“foo”在“永久链接/ json / foo /”)。

还将创建与端点同名的新查询var。

当指定$places时,请确保您使用的是EP_*常量(或使用按位或操作符的它们的组合),因为它们的值不保证保持静态(特别是EP_ALL)。

当你的插件被激活和去激活时,一定要刷新重写规则——参见flush_rewrite_rules()。

参数:

$name

(string) (必需) 终端的名称。

$places

(int) (必需) 端点掩码描述端点应该被添加的位置。接受一个掩码:

EP_ALL

EP_NONE

EP_ALL_ARCHIVES

EP_ATTACHMENT

EP_AUTHORS

EP_CATEGORIES

EP_COMMENTS

EP_DATE

EP_DAY

EP_MONTH

EP_PAGES

EP_PERMALINK

EP_ROOT

EP_SEARCH

EP_TAGS

EP_YEAR

$query_var

(string|bool) (可选) 对应查询变量的名称。传递false跳过为这个端点注册query_var。默认值为$name。

默认值: true

更多信息:

这会将端点添加到所有指定的链接类型(例如,帖子、页面、类别、作者、搜索),然后template-loader.php包含相关的处理程序文件。

端点的名称被添加为查询变量,这将获取端点名称之后的任何文本,并用' / '与名称分隔。template_redirect动作钩子应该测试这个查询变量。

这可以用于各种事情:

ajax处理程序

表单提交处理程序

选择通知处理程序

来源

文件: wp-includes/rewrite.php

function add_rewrite_endpoint( $name, $places, $query_var = true ) {

global $wp_rewrite;

$wp_rewrite->add_endpoint( $name, $places, $query_var );

}

更新日志:

WordPress开发函数add_rewrite_endpoint() (https://www.wpzt.net/) WordPress开发教程 第1张

用户贡献的笔记

(由克斯托夫五年前提供)

$places的可用值:

EP_NONE

默认的端点掩码,这是什么都没有。

位值:0

EP_PERMALINK

永久链接的端点掩码。

位值:1

EP_ATTACHMENT

用于附件的端点掩码。

位值:2

EP_DATE

日期的端点掩码。

位值:4

EP_YEAR

终年面膜

位值:8

EP_MONTH

终末面膜一个月。

位值:16

EP_DAY

白天用的终末面膜。

32位的值:

EP_ROOT

根的端点掩码。

位值:64

EP_COMMENTS

注释的端点掩码。

位值:128

EP_SEARCH

搜索的端点掩码。

位值:256

EP_CATEGORIES

类别的端点掩码。

位值:512

EP_TAGS

标签的端点掩码。

位值:1024

EP_AUTHORS

为作者提供端点掩码。

位值:2048

EP_PAGES

页面的端点掩码。

位值:4096

EP_ALL_ARCHIVES

所有存档视图的端点掩码。

与使用EP_DATE | EP_YEAR | EP_MONTH | EP_DAY | EP_CATEGORIES | EP_TAGS | EP_AUTHORS相同

EP_ALL

端点掩码。

同使用EP_PERMALINK | EP_ATTACHMENT | EP_ROOT | EP_COMMENTS | EP_SEARCH | EP_PAGES | EP_ALL_ARCHIVES

(由克斯托夫五年前提供)

重写端点API教程:https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/