add_rewrite_endpoint( string $name, int $places, string|bool $query_var = true )
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 );
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
Be sure to flush the rewrite rules – see flush_rewrite_rules() – when your plugin gets activated and deactivated.
(string) (Required) Name of the endpoint.
(int) (Required) Endpoint mask describing the places the endpoint should be added. Accepts a mask of:
(string|bool) (Optional) Name of the corresponding query variable. Pass
falseto skip registering a query_var for this endpoint. Defaults to the value of
Default value: true
This adds the endpoint to all link types indicated (e.g. posts, pages, category, author, search) and then template-loader.php includes the relevant handler file.
The name of the endpoint is added as query variable and this gets as value any text present after the endpoint name, separated from the name with a ‘/’. The
template_redirect action hook should test this query variable.
This can be used for all sorts of things:
- ajax handler
- form submission handler
- alternative notification handler
Available values for
Endpoint Mask for default, which is nothing.
Bitwise value: 0
Endpoint Mask for Permalink.
Bitwise value: 1
Endpoint Mask for Attachment.
Bitwise value: 2
Endpoint Mask for date.
Bitwise value: 4
Endpoint Mask for year
Bitwise value: 8
Endpoint Mask for month.
Bitwise value: 16
Endpoint Mask for day.
Bitwise value: 32
Endpoint Mask for root.
Bitwise value: 64
Endpoint Mask for comments.
Bitwise value: 128
Endpoint Mask for searches.
Bitwise value: 256
Endpoint Mask for categories.
Bitwise value: 512
Endpoint Mask for tags.
Bitwise value: 1024
Endpoint Mask for authors.
Bitwise value: 2048
Endpoint Mask for pages.
Bitwise value: 4096
Endpoint Mask for all archive views.
Same as using
Endpoint Mask for everything.
Same as using EP_PERMALINK | EP_ATTACHMENT | EP_ROOT | EP_COMMENTS | EP_SEARCH | EP_PAGES | EP_ALL_ARCHIVES