X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/177fd6fefd2e3d5a0ea6591c71d660cabdb3c1a4..ac7339a398e6df50f722bc9616291ce5447d8e5e:/wp-admin/options-permalink.php diff --git a/wp-admin/options-permalink.php b/wp-admin/options-permalink.php index 38144a3b..0d241ae8 100644 --- a/wp-admin/options-permalink.php +++ b/wp-admin/options-permalink.php @@ -1,193 +1,288 @@ - 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; + } + $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 ); } + + wp_redirect( admin_url( 'options-permalink.php?settings-updated=true' ) ); + exit; } -$permalink_structure = get_option('permalink_structure'); -$category_base = get_option('category_base'); -$tag_base = get_option( 'tag_base' ); +$permalink_structure = get_option( 'permalink_structure' ); +$category_base = get_option( 'category_base' ); +$tag_base = get_option( 'tag_base' ); +$update_required = false; -if ( (!file_exists($home_path.'.htaccess') && is_writable($home_path)) || is_writable($home_path.'.htaccess') ) - $writable = true; -else +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; +} elseif ( $is_nginx ) { $writable = false; +} else { + if ( ( ! file_exists( $home_path . '.htaccess' ) && is_writable( $home_path ) ) || is_writable( $home_path . '.htaccess' ) ) { + $writable = true; + } else { + $writable = false; + $existing_rules = array_filter( extract_from_markers( $home_path . '.htaccess', 'WordPress' ) ); + $new_rules = array_filter( explode( "\n", $wp_rewrite->mod_rewrite_rules() ) ); + $update_required = ( $new_rules !== $existing_rules ); + } +} -if ($wp_rewrite->using_index_permalinks()) +if ( $wp_rewrite->using_index_permalinks() ) $usingpi = true; else $usingpi = false; -$wp_rewrite->flush_rules(); -?> +flush_rewrite_rules(); - -

+

+} +?> +

-

+

+
-

URLs which have question marks and lots of numbers in them, however WordPress offers you the ability to create a custom URL structure for your permalinks and archives. This can improve the aesthetics, usability, and forward-compatibility of your links. A number of tags are available, and here are some examples to get you started.'); ?>

-URLs which have question marks and lots of numbers in them; however, WordPress offers you the ability to create a custom URL structure for your permalinks and archives. This can improve the aesthetics, usability, and forward-compatibility of your links. A number of tags are available, and here are some examples to get you started.'); ?>

-if ( ! got_mod_rewrite() ) - $prefix = '/index.php'; + '', + 1 => $prefix . '/%year%/%monthnum%/%day%/%postname%/', + 2 => $prefix . '/%year%/%monthnum%/%postname%/', + 3 => $prefix . '/' . _x( 'archives', 'sample permalink base' ) . '/%post_id%', + 4 => $prefix . '/%postname%/', +); ?> -

- +

+
- + - - + + - - + + - - + + + + + + -

- -

URLs here. For example, using /topics/ as your category base would make your category links like http://example.org/topics/uncategorized/. If you leave these blank the defaults will be used.') ?>

- -

URLs here. For example, using /topics/ as your category base would make your category links like http://example.org/index.php/topics/uncategorized/. If you leave these blank the defaults will be used.') ?>

- +

+

URLs here. For example, using topics as your category base would make your category links like %s/topics/uncategorized/. If you leave these blank the defaults will be used.'), get_option('home') . $blog_prefix . $prefix ); ?>

- - + + - - + + +
-

+ + + +
- -

.htaccess file were writable, we could do this automatically, but it isn’t so these are the mod_rewrite rules you should have in your .htaccess file. Click in the field and press CTRL + a to select all.') ?>

+ + +

web.config file were writable, we could do this automatically, but it isn’t so this is the url rewrite rule you should have in your web.config file. Click in the field and press CTRL + a to select all. Then insert this rule inside of the /<configuration>/<system.webServer>/<rewrite>/<rules> element in web.config file.') ?>

+
+ +

+
+

web.config file writable for us to generate rewrite rules automatically, do not forget to revert the permissions after rule has been saved.') ?>

+ +

writable, we could do this automatically, but it isn’t so this is the url rewrite rule you should have in your web.config file. Create a new file, called web.config in the root directory of your site. Click in the field and press CTRL + a to select all. Then insert this code into the web.config file.') ?>

+
+ +

+
+

web.config file automatically, do not forget to revert the permissions after the file has been created.') ?>

+ + + +

.htaccess file were writable, we could do this automatically, but it isn’t so these are the mod_rewrite rules you should have in your .htaccess file. Click in the field and press CTRL + a to select all.') ?>

-

+

+ +
- +