当前浏览:首页 / WordPress函数 / add_rewrite_endpoint()

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

添加端点,如/trackback/

addmore...

rewrite


描述

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

add_rewrite_endpoint( 'json', EP_PERMALINK | EP_PAGES );

这将为文章或页面固定链接的每个固定结构添加一个新的重写规则:"json(/(.*))?/?$"。它被重写为"json=$match",其中$match是与端点正则匹配的URL的一部分(如"[permalink]/json/foo/")中的“foo”)。

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

指定$places时,请确保使用EP_*常量(或使用位数OR运算符的组合),因为它们的值不能保证保持静态(尤其是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 处理程序
  • 表单提交处理程序
  • 替代通知处理程序


源码

查看源码 官方文档


更新日志

版本描述
4.3.0通过将false传递给$query_var,添加了对跳过查询变量注册的支持。
2.1.0开始引入

使用示例

  • 示例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 相同

  • 示例2