Removes rewrite rules and then recreate rewrite rules.
Description
Calls WP_Rewrite::wp_rewrite_rules() after removing the ‘rewrite_rules’ option.
If the function named ‘save_mod_rewrite_rules’ exists, it will be called.
Parameters
$hard
booloptional- Whether to update .htaccess (hard flush) or just update rewrite_rules option (soft flush). Default is true (hard).
Default:
true
Source
public function flush_rules( $hard = true ) {
static $do_hard_later = null;
// Prevent this action from running before everyone has registered their rewrites.
if ( ! did_action( 'wp_loaded' ) ) {
add_action( 'wp_loaded', array( $this, 'flush_rules' ) );
$do_hard_later = ( isset( $do_hard_later ) ) ? $do_hard_later || $hard : $hard;
return;
}
if ( isset( $do_hard_later ) ) {
$hard = $do_hard_later;
unset( $do_hard_later );
}
$this->refresh_rewrite_rules();
/**
* Filters whether a "hard" rewrite rule flush should be performed when requested.
*
* A "hard" flush updates .htaccess (Apache) or web.config (IIS).
*
* @since 3.7.0
*
* @param bool $hard Whether to flush rewrite rules "hard". Default true.
*/
if ( ! $hard || ! apply_filters( 'flush_rewrite_rules_hard', true ) ) {
return;
}
if ( function_exists( 'save_mod_rewrite_rules' ) ) {
save_mod_rewrite_rules();
}
if ( function_exists( 'iis7_save_url_rewrite_rules' ) ) {
iis7_save_url_rewrite_rules();
}
}
Hooks
- apply_filters( ‘flush_rewrite_rules_hard’,
bool $hard ) Filters whether a “hard” rewrite rule flush should be performed when requested.
Changelog
Version | Description |
---|---|
2.0.1 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.