X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/449d082fcc4873c1f7d363a0d9f7409be7f6e77d..e3ff8f35458a959c1879c0a4976701ed8dcfe651:/wp-admin/options-permalink.php diff --git a/wp-admin/options-permalink.php b/wp-admin/options-permalink.php index 93f1619f..95c1a3e0 100644 --- a/wp-admin/options-permalink.php +++ b/wp-admin/options-permalink.php @@ -1,216 +1,268 @@ - -mod_rewrite_rules() ) ); + $update_required = ( $new_rules !== $existing_rules ); + } +} -$home_path = get_home_path(); +$using_index_permalinks = $wp_rewrite->using_index_permalinks(); if ( isset($_POST['permalink_structure']) || isset($_POST['category_base']) ) { check_admin_referer('update-permalink'); - if ( isset($_POST['permalink_structure']) ) { - $permalink_structure = $_POST['permalink_structure']; - if (! empty($permalink_structure) ) - $permalink_structure = preg_replace('#/+#', '/', '/' . $_POST['permalink_structure']); - $wp_rewrite->set_permalink_structure($permalink_structure); + if ( isset( $_POST['permalink_structure'] ) ) { + if ( isset( $_POST['selection'] ) && 'custom' != $_POST['selection'] ) + $permalink_structure = $_POST['selection']; + else + $permalink_structure = $_POST['permalink_structure']; + + if ( ! empty( $permalink_structure ) ) { + $permalink_structure = preg_replace( '#/+#', '/', '/' . str_replace( '#', '', $permalink_structure ) ); + if ( $prefix && $blog_prefix ) + $permalink_structure = $prefix . preg_replace( '#^/?index\.php#', '', $permalink_structure ); + else + $permalink_structure = $blog_prefix . $permalink_structure; + } + + $permalink_structure = sanitize_option( 'permalink_structure', $permalink_structure ); + + $wp_rewrite->set_permalink_structure( $permalink_structure ); } - if ( isset($_POST['category_base']) ) { + if ( isset( $_POST['category_base'] ) ) { $category_base = $_POST['category_base']; - if (! empty($category_base) ) - $category_base = preg_replace('#/+#', '/', '/' . $_POST['category_base']); - $wp_rewrite->set_category_base($category_base); + if ( ! empty( $category_base ) ) + $category_base = $blog_prefix . preg_replace('#/+#', '/', '/' . str_replace( '#', '', $category_base ) ); + $wp_rewrite->set_category_base( $category_base ); } - if ( isset($_POST['tag_base']) ) { + if ( isset( $_POST['tag_base'] ) ) { $tag_base = $_POST['tag_base']; - if (! empty($tag_base) ) - $tag_base = preg_replace('#/+#', '/', '/' . $_POST['tag_base']); - $wp_rewrite->set_tag_base($tag_base); + if ( ! empty( $tag_base ) ) + $tag_base = $blog_prefix . preg_replace('#/+#', '/', '/' . str_replace( '#', '', $tag_base ) ); + $wp_rewrite->set_tag_base( $tag_base ); } -} -$permalink_structure = get_option('permalink_structure'); -$category_base = get_option('category_base'); -$tag_base = get_option( 'tag_base' ); + $message = __( 'Permalink structure updated.' ); -if ( (!file_exists($home_path.'.htaccess') && is_writable($home_path)) || is_writable($home_path.'.htaccess') ) - $writable = true; -else - $writable = false; + if ( $iis7_permalinks ) { + if ( $permalink_structure && ! $using_index_permalinks && ! $writable ) { + $message = __( 'You should update your web.config now.' ); + } elseif ( $permalink_structure && ! $using_index_permalinks && $writable ) { + $message = __( 'Permalink structure updated. Remove write access on web.config file now!' ); + } + } elseif ( ! $is_nginx && $permalink_structure && ! $using_index_permalinks && ! $writable && $update_required ) { + $message = __( 'You should update your .htaccess now.' ); + } -if ($wp_rewrite->using_index_permalinks()) - $usingpi = true; -else - $usingpi = false; + if ( ! get_settings_errors() ) { + add_settings_error( 'general', 'settings_updated', $message, 'updated' ); + } -$wp_rewrite->flush_rules(); -?> + set_transient( 'settings_errors', get_settings_errors(), 30 ); - -