WordPress at Your Fingertips

add_rewrite_endpoint() WP 1.0

Add an endpoint, like /trackback/.

Adding an endpoint creates extra rewrite rules for each of the matching places specified by the provided bitmask. For example:

add_rewrite_endpoint( 'json', EP_PERMALINK | EP_PAGES );

will add a new rewrite rule ending with "json(/(.*))?/?$" for every permastruct that describes a permalink (post) or page. This is rewritten to "json=$match" where $match is the part of the URL matched by the endpoint regex (e.g. "foo" in "[permalink]/json/foo/").

A new query var with the same name as the endpoint will also be created.

When specifying $places ensure that you are using the EP_* constants (or a combination of them using the bitwise OR operator) as their values are not guaranteed to remain static (especially EP_ALL).

Be sure to flush the rewrite rules - see flush_rewrite_rules() - when your plugin gets activated and deactivated.

1 time — 0.000001 sec (speed of light) | 50000 times — 0.07 sec (speed of light) | PHP 7.3.20, WP 5.5.3

No Hooks.

Return

null. Nothing.

Usage

add_rewrite_endpoint( $name, $places, $query_var );
$name(string) (required)
Name of the endpoint.
$places(int) (required)
Endpoint mask describing the places the endpoint should be added. Accepts a mask of:
  • 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|true|false)
Name of the corresponding query variable. Pass false to skip registering a query_var for this endpoint.
Default: value of $name

Notes

  • Global. WP_Rewrite. $wp_rewrite WordPress rewrite component.

Changelog

Since 2.1.0 Introduced.
Since 4.3.0 Added support for skipping query var registration by passing false to $query_var.

Code of add_rewrite_endpoint() WP 5.8

<?php
function add_rewrite_endpoint( $name, $places, $query_var = true ) {
	global $wp_rewrite;
	$wp_rewrite->add_endpoint( $name, $places, $query_var );
}

From tag: Rewrite (clean friendly URL)

No comments
    Log In