X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/fd1685fbc29cf422e0d23f1bf1815bc023be805d..16e7b37c7914d753890c1a05a9335f3b43751eb8:/wp-admin/options-permalink.php diff --git a/wp-admin/options-permalink.php b/wp-admin/options-permalink.php index c06fa08c..95c1a3e0 100644 --- a/wp-admin/options-permalink.php +++ b/wp-admin/options-permalink.php @@ -1,248 +1,268 @@ - -mod_rewrite_rules() ) ); + $update_required = ( $new_rules !== $existing_rules ); + } +} -$home_path = get_home_path(); -$iis7_permalinks = iis7_supports_permalinks(); +$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 ( $iis7_permalinks ) { - if ( ( ! file_exists($home_path . 'web.config') && win_is_writable($home_path) ) || win_is_writable($home_path . 'web.config') ) - $writable = true; - else - $writable = false; -} else { - 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 ); - -
-