WP_Rewrite::flush_rules( bool $hard = true )
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
-
(Optional) Whether to update .htaccess (hard flush) or just update rewrite_rules option (soft flush). Default is true (hard).
Default value: true
Source
File: wp-includes/class-wp-rewrite.php
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 );
}
update_option( 'rewrite_rules', '' );
$this->wp_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 WP-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();
}
Changelog
Version | Description |
---|---|
WP-2.0.1 | Introduced. |