Move home and siteurl update events to action hooks.

git-svn-id: http://svn.automattic.com/wordpress/trunk@4175 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2006-09-08 21:42:05 +00:00
parent 0f7bb42a79
commit 5898bcca41
2 changed files with 15 additions and 22 deletions

View File

@ -2064,4 +2064,18 @@ function wp_reset_vars($vars) {
} }
} }
// If siteurl or home changed, reset cookies and flush rewrite rules.
function update_home_siteurl($old_value, $value) {
global $wp_rewrite, $user_login, $user_pass_md5;
// If home changed, write rewrite rules to new location.
$wp_rewrite->flush_rules();
// Clear cookies for old paths.
wp_clearcookie();
// Set cookies for new paths.
wp_setcookie($user_login, $user_pass_md5, true, get_option('home'), get_option('siteurl'));
}
add_action('update_option_home', 'update_home_siteurl');
add_action('update_option_siteurl', 'update_home_siteurl');
?> ?>

View File

@ -86,36 +86,15 @@ case 'update':
$options = explode(',', stripslashes($_POST['page_options'])); $options = explode(',', stripslashes($_POST['page_options']));
} }
// Save for later.
$old_siteurl = get_option('siteurl');
$old_home = get_option('home');
if ($options) { if ($options) {
foreach ($options as $option) { foreach ($options as $option) {
$option = trim($option); $option = trim($option);
$value = trim(stripslashes($_POST[$option])); $value = trim(stripslashes($_POST[$option]));
$value = sanitize_option($option, $value); $value = sanitize_option($option, $value);
update_option($option, $value);
if (update_option($option, $value) ) {
$any_changed++;
}
} }
} }
if ($any_changed) {
// If siteurl or home changed, reset cookies.
if ( get_option('siteurl') != $old_siteurl || get_option('home') != $old_home ) {
// If home changed, write rewrite rules to new location.
$wp_rewrite->flush_rules();
// Clear cookies for old paths.
wp_clearcookie();
// Set cookies for new paths.
wp_setcookie($user_login, $user_pass_md5, true, get_option('home'), get_option('siteurl'));
}
//$message = sprintf(__('%d setting(s) saved... '), $any_changed);
}
$referred = remove_query_arg('updated' , wp_get_referer()); $referred = remove_query_arg('updated' , wp_get_referer());
$goback = add_query_arg('updated', 'true', wp_get_referer()); $goback = add_query_arg('updated', 'true', wp_get_referer());
$goback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $goback); $goback = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $goback);