10up engineering best practices as a great example on how to achieve that.
You basically add a new rewrite tag and a new rewrite rule and then using the template_redirect action you return your custom action.
Here is the code:
add_action( 'init', function() {
add_rewrite_tag( '%model%', '([^/]+)' );
add_rewrite_rule( 'cars/([^/]+)/?', 'index.php?model=$matches[1]', 'top' );
} );
add_action( 'template_redirect', function() {
global $wp_query;
$model = $wp_query->get( 'model' );
if ( ! empty( $model ) ) {
// Return stuff here
}
} );
Don’t forget to flush permalinks before trying your new endpoint!
Using wp-cli:
wp rewrite flush
Or using the admin UI: http://example.local/wp-admin/options-permalink.php and click save.
Related Posts:
- How make a multi language routes, with rewrite rules or rewrite endpoints?
- Add rewrite rule for rewrite endpoint
- How to have multiple rewrite endpoints in the same URL?
- Enpoint Not Found in Rewrite Tag Permalink
- How to create custom URL routes?
- web.config conflict on IIS
- add_rewrite_rule: $matches var not replaced by captured value
- How-to add rewrite rules to point the uploads folder to a subdomain
- Rewrite Rules for Multiple (more than 2) Taxonomies
- add_rewrite_rule not loading correct page nor getting variables
- SEO Friendly URLs for my plugin categories
- Mod_rewrite delete parameter in 301 Redirect
- add_rewrite_rule not working for page var
- WordPress URL rewrite regex
- Blog installed in subdirectory but need to create pages in root. How to use permalinks?
- WordPress keeps writing rewrite rules to .htaccess
- Adding the amp url prefix to the beginning
- WordPress Rewrite
- Tricky URL rewrite with custom values in url
- Add rewrite rule to call front-page.php?
- Add a query string to ALL links on site
- Custom rewrite rule for backend/admin?
- Having trouble with using add_rewrite_rule and pagination
- add_rewrite_rule is not taking effect in WordPress? .htaccess file doesn’t update
- How to create an endpoint without creating sub endpoints?
- Add specific word to default page permalink
- Removing “category” from URLs then “add_endpoint()” won’t work…
- Rewriting URLs in WordPress
- add_rewrite_rule() to route to file other than index.php
- Rewrite rule to load images from production does nothing
- Custom query_vars and parse_request on wp-admin
- ‘rewrite_rules_array’ or ‘generate_rewrite_rules’ for adding custom rewrite rules?
- Custom rewrite not working
- My WP_options db rewrite_rules Does Not Work
- Disable Pagination on Pages
- Custom rewrite_rules – only pass numbers and not alphabetic characters
- Rewrite wp-login.php URLS to static pages?
- How to add a custom redirect rule for Post as subdomains?
- How to preserve the query string while using add_rewrite_rule and default public query vars
- Rewrite custom post type URL parameters
- Changed pagination URLS to use p= instead of paged=
- How to use add_rewrite_rule in subdomain
- Rewrite the default post object’s permalink
- How to write Rewrite rule for same path using Rewrite API?
- URL rewriting with custom user meta “/%shop_name%/gallery/%gallery%”
- URL Rewrite and add_query_var not working
- Custom Rewrite Rules
- URL Rewrite with Custom Variables
- How to add custom rewrite rules and point to specific templates
- Custom rewrite after the default term link URL
- Rewrite /category/cars into /topics/cars
- show ALL latest posts with archive.php on example.com/latest
- How can I reduce the number of rewrite rules?
- Name page template properly
- One off rewrite for single post-type slug (show normal page with same URL instead)
- WP redirect rule doesn’t work
- How to use wp rewrite to hide form action url?
- URL rewrite in theme doesn’t seem to be working
- WordPress Rewrite rule is not working
- Redirect URL to an existing page with query string or #! added on
- Rewrite rule that wp-login.php?action=register is left alone
- Trying to add array of paths to post permalink
- How to rewrite URL back to default custom URL if no destination found
- Use URI suffix as parameter and ignore when resolving page
- Why wordpress rewrite my custom URL?
- Rewrite rule regex help required
- Redirect empty search to another page
- Dynamic URL with rewrite rule not working
- How can I add a vanity URL for admin-ajax.php Calls?
- Remove part from dynamic url and redirect
- Rewrite dynamic URLs as pretty URLs in WordPress functions.php (add_rewrite_rule) – what’s wrong with my code?
- How to get relative page for every post: /post-1/contact. /post-2/contact
- Rewrite rule not working, suspect redirect string
- Pretty URL via Rewrite
- WordPress Rewrite Rule to EITHER Match 1 or 2 Taxonomies when adding to URL
- WordPress numeric (yearly) page names / disable yearly archives
- Rewrite Rule added but showing 404 rather than specified page
- How to use a RewriteRule to change endpoint url
- Blog List Page 404 With Custom Post Type Rewriting to Blog Parent
- Need help with custom rewrite rule
- Custom taxonomy Rewrite Rule
- I want to add one extra field to my URLs, I’m using Rewrite functions but it doesn’t work
- Font Page overrides rewrites
- rewrite rules social share links
- add_rewrite_rule is not fired
- Custom URL scheme – paramters on custom post type
- get_permalink is getting old rewrite rule
- rewrite rule for home/index page
- Custom Rewrite for Profiles
- WordPress Custom Rewrite Rule
- Additional .htaccess rules based on wp page
- URL Rewriting in WordPress
- Rewrite URL variable to custom path
- Rewrite function
- Programmatically add a custom url route “/category/index.json” to return a collection of posts in json
- Rewrite URLs in a Custom Post Type with Multiple Taxonomies
- Rewrite rule giving 404 error
- WordPress picks a wrong template if ?cat= is used as URL parameter
- WP-Include rewrite directory
- How to combine nearly identical custom rewrite rules for WordPress