WP_Rewrite::flush_rules()publicWP 2.0.1

Removes rewrite rules and then recreate rewrite rules.

Calls WP_Rewrite::wp_rewrite_rules() after removing the rewrite_rules If the function named 'save_mod_rewrite_rules' exists, it will be called.

Method of the class: WP_Rewrite{}

Method of the class: WP_Rewrite{}

Hooks from the method

Return

null. Nothing (null).

Usage

global $wp_rewrite;
$wp_rewrite->flush_rules( $hard );
$hard(true|false)
Whether to update .htaccess (hard flush) or just update rewrite_rules option (soft flush).
Default: true (hard)

Examples

0

#1 Example of updating rewrite rules of URLs:

// make sure the $wp_rewrite variable is defined globally
global $wp_rewrite;

$wp_rewrite->flush_rules();

Or you could do it this way:

$GLOBALS['wp_rewrite']->flush_rules();
0

#2 Example of updating rewrite rules using the function flush_rewrite_rules(), while the plugin is activated:

register_activation_hook( __FILE__, 'author_base_rewrite' );

function author_base_rewrite(){
	flush_rewrite_rules( false );
}

flush_rewrite_rules( false ) - false indicates that the file .htaccess should not be updated, if false is not specified, the file .htaccess will be updated according to the rules.

Changelog

Since 2.0.1 Introduced.

WP_Rewrite::flush_rules() code WP 6.5.2

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();
	}
}