private function flush_rewrite_rules() { // We have to deal with the fact that the procedures used call get_option, which could be looking at the wrong table prefix, or have the wrong thing cached global $updraftplus_addons_migrator; if (!empty($updraftplus_addons_migrator->new_blogid)) { switch_to_blog($updraftplus_addons_migrator->new_blogid); } foreach (array('permalink_structure', 'rewrite_rules', 'page_on_front') as $opt) { add_filter('pre_option_' . $opt, array($this, 'option_filter_' . $opt)); } global $wp_rewrite; $wp_rewrite->init(); // Don't do this: it will cause rules created by plugins that weren't active at the start of the restore run to be lost # flush_rewrite_rules(true); if (function_exists('save_mod_rewrite_rules')) { save_mod_rewrite_rules(); } if (function_exists('iis7_save_url_rewrite_rules')) { iis7_save_url_rewrite_rules(); } foreach (array('permalink_structure', 'rewrite_rules', 'page_on_front') as $opt) { remove_filter('pre_option_' . $opt, array($this, 'option_filter_' . $opt)); } if (!empty($updraftplus_addons_migrator->new_blogid)) { restore_current_blog(); } }
/** * Remove rewrite rules and then recreate rewrite rules. * * Calls {@link WP_Rewrite::wp_rewrite_rules()} after removing the * 'rewrite_rules' option. If the function named 'save_mod_rewrite_rules' * exists, it will be called. * * @since 2.0.1 * @access public * @param bool $hard Whether to update .htaccess (hard flush) or just update rewrite_rules option (soft flush). Default is true (hard). */ function flush_rules($hard = true) { delete_option('rewrite_rules'); $this->wp_rewrite_rules(); if ($hard && function_exists('save_mod_rewrite_rules')) { save_mod_rewrite_rules(); } if ($hard && function_exists('iis7_save_url_rewrite_rules')) { iis7_save_url_rewrite_rules(); } }
/** * Remove rewrite rules and then recreate rewrite rules. * * Calls {@link WP_Rewrite::wp_rewrite_rules()} after removing the * 'rewrite_rules' option. If the function named 'save_mod_rewrite_rules' * exists, it will be called. * * @since 2.0.1 * @access public * @param bool $hard Whether to update .htaccess (hard flush) or just update rewrite_rules option (soft flush). Default is true (hard). */ public function flush_rules($hard = true) { delete_option('rewrite_rules'); $this->wp_rewrite_rules(); /** * Filter 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(); } }
/** * Remove rewrite rules and then recreate rewrite rules. * * Calls {@link HQ_Rewrite::hq_rewrite_rules()} after removing the * 'rewrite_rules' option. If the function named 'save_mod_rewrite_rules' * exists, it will be called. * * @since 0.0.1 * @access public * * @staticvar bool $do_hard_later * * @param bool $hard Whether to update .htaccess (hard flush) or just update rewrite_rules option (soft flush). Default is true (hard). */ 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('hq_loaded')) { add_action('hq_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); } delete_option('rewrite_rules'); $this->hq_rewrite_rules(); /** * Filter whether a "hard" rewrite rule flush should be performed when requested. * * A "hard" flush updates .htaccess (Apache) or web.config (IIS). * * @since 0.0.1 * * @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(); } }
/** * Remove rewrite rules and then recreate rewrite rules. * * Calls {@link WP_Rewrite::wp_rewrite_rules()} after removing the * 'rewrite_rules' option. If the function named 'save_mod_rewrite_rules' * exists, it will be called. * * @since 2.0.1 * @access public */ function flush_rules() { delete_transient('rewrite_rules'); $this->wp_rewrite_rules(); if ( function_exists('save_mod_rewrite_rules') ) save_mod_rewrite_rules(); if ( function_exists('iis7_save_url_rewrite_rules') ) iis7_save_url_rewrite_rules(); }