The flush_rewrite_rules_hard WordPress PHP filter allows you to control whether a “hard” rewrite rule flush should be performed when requested.
Usage
add_filter('flush_rewrite_rules_hard', 'your_custom_function', 10, 1); function your_custom_function($hard) { // your custom code here return $hard; }
Parameters
- $hard (bool): Determines if a “hard” flush should be performed. Default is true.
More information
See WordPress Developer Resources: flush_rewrite_rules_hard
Examples
Disable hard flush of rewrite rules
Prevent a hard flush of rewrite rules to avoid modifying the .htaccess or web.config file.
add_filter('flush_rewrite_rules_hard', 'disable_hard_flush'); function disable_hard_flush($hard) { return false; }
Enable hard flush of rewrite rules for a custom post type
Perform a hard flush of rewrite rules when a specific custom post type is registered.
add_filter('flush_rewrite_rules_hard', 'enable_hard_flush_for_custom_post_type', 10, 1); function enable_hard_flush_for_custom_post_type($hard) { if (post_type_exists('your_custom_post_type')) { return true; } return $hard; }
Disable hard flush of rewrite rules for multisite
Disable hard flush of rewrite rules for multisite installations.
add_filter('flush_rewrite_rules_hard', 'disable_hard_flush_for_multisite'); function disable_hard_flush_for_multisite($hard) { if (is_multisite()) { return false; } return $hard; }
Enable hard flush of rewrite rules for a specific plugin
Enable hard flush of rewrite rules when a specific plugin is active.
add_filter('flush_rewrite_rules_hard', 'enable_hard_flush_for_specific_plugin'); function enable_hard_flush_for_specific_plugin($hard) { if (is_plugin_active('your-plugin-folder/your-plugin-file.php')) { return true; } return $hard; }
Enable hard flush of rewrite rules for specific user roles
Perform a hard flush of rewrite rules only for users with specific roles.
add_filter('flush_rewrite_rules_hard', 'enable_hard_flush_for_specific_roles'); function enable_hard_flush_for_specific_roles($hard) { if (current_user_can('manage_options') || current_user_can('editor')) { return true; } return $hard; }