Adding custom URL rewrite rules in WordPress using add_rewrite_rule
The add_rewrite_rule
function in WordPress allows developers to create custom URL rewrite rules for their WordPress site. This can be useful for creating custom permalink structures, redirecting URLs, or creating custom endpoints for specific content types.
By using the add_rewrite_rule
function, developers can have more control over the URLs on their WordPress site and create more user-friendly and SEO-friendly URLs for their content.
Parameters Accepted by the WordPress add_rewrite_rule Function
The add_rewrite_rule
function accepts the following parameters:
$regex
(string, required): Regular expression to match request against.$query
(string array, required): The corresponding query vars for this rewrite rule.$after
(string, optional, default value: ‘bottom’): Priority of the new rule. Accepts ‘top’ or ‘bottom’. Default is ‘bottom’.
When called, the add_rewrite_rule
function does not return a value.
Examples
How to add a simple rewrite rule in WordPress
add_action('init', 'custom_rewrite_rule');
function custom_rewrite_rule() {
add_rewrite_rule('^my-page/?', 'index.php?pagename=my-page', 'top');
}
This code snippet adds a simple rewrite rule to WordPress using the add_rewrite_rule
function. It hooks into the init
action and defines a custom rewrite rule for the URL my-page
, which will be mapped to the my-page
page in WordPress.
How to add a rewrite rule with custom query variables in WordPress
add_action('init', 'custom_rewrite_rule');
function custom_rewrite_rule() {
add_rewrite_rule('^product/([^/]+)/?$', 'index.php?product=$matches[1]', 'top');
add_rewrite_tag('%product%', '([^/]+)');
}
This code snippet adds a rewrite rule with custom query variables to WordPress. It hooks into the init
action and defines a custom rewrite rule for the URL pattern product/([^/]+)/?
, which will be mapped to a query variable product
in WordPress. The add_rewrite_tag
function is used to define the custom query variable %product%
.
How to add a rewrite rule with custom endpoints in WordPress
add_action('init', 'custom_rewrite_rule');
function custom_rewrite_rule() {
add_rewrite_rule('^api/(.+?)/?$', 'index.php?custom_endpoint=$matches[1]', 'top');
add_rewrite_endpoint('api', EP_PERMALINK);
}
This code snippet adds a rewrite rule with custom endpoints to WordPress. It hooks into the init
action and defines a custom rewrite rule for the URL pattern api/(.+?)/?
, which will be mapped to a custom endpoint api
in WordPress. The add_rewrite_endpoint
function is used to define the custom endpoint api
.
Conclusion
In conclusion, the add_rewrite_rule
function is an useful component for customizing the URL structure of a WordPress site. By using this function, developers can create custom URL patterns and redirect rules to improve the user experience and make the site more search engine friendly. With careful planning and implementation, add_rewrite_rule
can be a valuable asset in creating a more flexible and user-friendly website.