init
is the recommended hook and no, the rewrite rules will not be overwritten each time the hook fires or that the page is loaded, unless if you call flush_rewrite_rules()
or WP_Rewrite::flush_rules()
in your callback.
add_action( 'init', 'add_my_rewrite_rules' );
function add_my_rewrite_rules() {
add_rewrite_rule( ... );
flush_rewrite_rules(); // don't do this
}
So please don’t do that, or do it only upon plugin/theme activation and deactivation — and if you don’t already know, you can easily flush the rules by simply going to the Permalink settings admin page, without having to hit the Save Changes button.
Related Posts:
- How to create custom URL routes?
- How do you create a “virtual” page in WordPress
- Change the “page” slug in pagination
- Understanding add_rewrite_rule
- web.config conflict on IIS
- Rewrite rules not working in WordPress
- Dynamic Endpoints
- How to add custom rewrite rule to .htaccess?
- How do I remove a rewrite rule?
- Problem with add_rewrite_rule and pagination (paged and page query_vars)
- generate_rewrite_rules (action) vs add_rewrite_rule (function): which one is preferred?
- 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
- Preserving $_GET parameter while using custom Rewrite Rule
- How to change default page slug?
- Disable wordpress pagination URL rewrite for specific page
- How to use Post Custom Metadata in Post Titles and Post Permalinks
- Rewrite url for custom post type
- add_query_vars and add_rewrite_rules
- rewrite_rule() not preserving the query string
- Need help with rewrite_rules_array
- SEO Friendly URLs for my plugin categories
- How do I add a add_rewrite_rule without it redirecting?
- Taxonomy rewrite question
- Mod_rewrite delete parameter in 301 Redirect
- add_rewrite_rule not working for page var
- Why does wordpress still strip my query var?
- When to call `add_rewrite_rule` for safety
- WordPress URL rewrite regex
- Custom rewrite rules are sending everything to index.php
- Getting add_rewrite_rule and add_rewrite_tag to work
- Blog installed in subdirectory but need to create pages in root. How to use permalinks?
- WordPress Network on IIS7/SQL Server – Rewrite Issues
- Custom comments
- Rewrite rules goes away
- Rewrite Rule for Custom Page with Query Vars in URL
- WordPress keeps writing rewrite rules to .htaccess
- Adding the amp url prefix to the beginning
- WordPress Rewrite
- add_rewrite_rule again
- Dynamic URL, not a physical page within the database
- Rewrite Rule for Post “Subpage”, with pagination
- Need to make a php file inside theme accessible via url
- Tricky URL rewrite with custom values in url
- WP Rewrite the last two parts of the URL
- Rewrite loading custom template file but is_home() returns true, and there’s no 404
- Rewrite rule for admin-ajax.php
- Add rewrite rule to call front-page.php?
- Nginx rewrite rule conflict with WordPress permalinks rule
- Add a query string to ALL links on site
- How make a multi language routes, with rewrite rules or rewrite endpoints?
- Evaluating a external rewrite rule before internal wordpress rewrite rule
- Add rewrite rule for rewrite endpoint
- Custom rewrite rule for backend/admin?
- Having trouble with using add_rewrite_rule and pagination
- Access $_POST data after redirect
- How to have multiple rewrite endpoints in the same URL?
- Rewriting rules: difference between ‘init’, ‘rewrite_rules_array’, ‘generate_rewrite_rules’?
- Change Query String to pretty permalink
- add_rewrite_rule is not taking effect in WordPress? .htaccess file doesn’t update
- WordPress rewrite rules for state and city
- Multiple Permalinks for Same Post
- add_rewrite_rule not working for language specific characters
- How to add a custom redirect rule for subdomains?
- Custom rewrite rule
- Regionalised Content
- Single Redirection Rule for Pages and Archive links
- How to do Basic URL Rewrite Without Redirecting
- Is it possible to remove feeds from rewrites?
- Add specific word to default page permalink
- URL Rewrite doesn’t work for nested pages
- Flush Rewrite Rules on init or rest_api_init?
- Plugin action rewrite rule – non_wp_rules
- Remove “/page/1” from the URL
- hard flush_rewrite_rules() not regenerating .htaccess
- Map alt domain to specific section of website w/o MU
- Rewrite URL – insert custom variables as a directory path
- Rewriting URLs in WordPress
- add_rewrite_rule() to route to file other than index.php
- How to properly rewrite url by custom var
- 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?
- Rewrite Rules Are Redirecting and Not Passing VARs
- Can’t add external rewrites
- WordPress rewrite rules don’t need ^?
- Have two different URLs show the homepage
- url rewrite parsing a custom url parameter not working
- How to add custom variable in url without redirect?
- Using category slug in add_rewrite rule
- custom template rewrite
- Custom rewrite not working
- add_rewrite_rule ignoring other params than the “p” param
- Url Rewriting a dynamic wordpress page
- How to catch Rewrite rules then display a specific post?
- My WP_options db rewrite_rules Does Not Work
- Disable Pagination on Pages
- Adding two rewrite rules