WP_Rewrite::flush_rules

Advertisement

Summery Summery

Removes rewrite rules and then recreate rewrite rules.

Syntax Syntax

WP_Rewrite::flush_rules( bool $hard = true )

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

Advertisement

Changelog Changelog

Changelog
Version Description
2.0.1 Introduced.

Advertisement

Leave a Reply