From 66bfe2a6eb1bf3e43ef33c11d7ff8c3e4a7a2a8f Mon Sep 17 00:00:00 2001 From: Chuck Scott Date: Fri, 17 Jun 2016 15:30:52 -0400 Subject: [PATCH] Reworked how we're checking for our rewrite rules and flusing the cache. --- setup/frontHooks.php | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/setup/frontHooks.php b/setup/frontHooks.php index 7a42048..54492e2 100644 --- a/setup/frontHooks.php +++ b/setup/frontHooks.php @@ -26,12 +26,24 @@ * *** Also note that parameters will be in the context of the main front controller constructor. *** */ -// Setup rewrite for member detail pages -add_filter('rewrite_rules_array', function($rules) { - $newrules = array(); - $newrules['('.$this->config['settings']['canonical_event_page'].')/([^/]*)$'] = 'index.php?pagename=$matches[1]&eventslug=$matches[2]'; - return $newrules + $rules; -}); +// Check if the canonical event page rewrite rule is not currently in place. +$rules = get_option( 'rewrite_rules' ); +if ( ! isset( $rules['('.$this->config['settings']['canonical_event_page'].')/([^/]*)$'] ) ) { + + // Setup rewrite for member detail pages + add_filter('rewrite_rules_array', function($rules) { + $newrules = array(); + $newrules['('.$this->config['settings']['canonical_event_page'].')/([^/]*)$']='index.php?pagename=$matches[1]&eventslug=$matches[2]'; + return $newrules + $rules; + }); + + // Rewrite is not in place, so setup init call to add it and flush the rewrite cache + add_filter('init', function() { + global $wp_rewrite; + $wp_rewrite->flush_rules(); + }); + +} // Add eventslug query var add_filter('query_vars', function($vars) { @@ -39,15 +51,6 @@ add_filter('query_vars', function($vars) { return $vars; }); -// On init, check if we need to flush the rewrite rules to pickup the new ones -add_filter('init', function() { - $rules = get_option( 'rewrite_rules' ); - if ( ! isset( $rules['('.$this->config['settings']['canonical_event_page'].')/([^/]*)$'] ) ) { - global $wp_rewrite; - $wp_rewrite->flush_rules(); - } -}); - if (isset($this->config['addOns']['glm-member-db'])) { // // Add content to member listing page - Get it from the existing package listing shortcode -- 2.17.1