2003-10-26 06:25:26 +01:00
< ? php
2004-10-19 05:03:06 +02:00
require_once ( 'admin.php' );
2006-11-18 08:31:29 +01:00
$title = __ ( 'Permalink Options' );
$parent_file = 'options-general.php' ;
2005-08-03 03:50:56 +02:00
function add_js () {
?>
< script type = " text/javascript " >
2005-08-03 03:56:02 +02:00
//<![CDATA[
function GetElementsWithClassName ( elementName , className ) {
var allElements = document . getElementsByTagName ( elementName );
var elemColl = new Array ();
for ( i = 0 ; i < allElements . length ; i ++ ) {
if ( allElements [ i ] . className == className ) {
elemColl [ elemColl . length ] = allElements [ i ];
}
}
return elemColl ;
}
function upit () {
var inputColl = GetElementsWithClassName ( 'input' , 'tog' );
var structure = document . getElementById ( 'permalink_structure' );
var inputs = '' ;
for ( i = 0 ; i < inputColl . length ; i ++ ) {
if ( inputColl [ i ] . checked && inputColl [ i ] . value != '' ) {
inputs += inputColl [ i ] . value + ' ' ;
}
}
inputs = inputs . substr ( 0 , inputs . length - 1 );
if ( 'custom' != inputs )
structure . value = inputs ;
}
function blurry () {
if ( ! document . getElementById ) return ;
2005-11-18 10:36:43 +01:00
var structure = document . getElementById ( 'permalink_structure' );
structure . onfocus = function () { document . getElementById ( 'custom_selection' ) . checked = 'checked' ; }
2005-08-03 03:56:02 +02:00
var aInputs = document . getElementsByTagName ( 'input' );
2006-02-12 08:53:23 +01:00
for ( var i = 0 ; i < aInputs . length ; i ++ ) {
2005-08-03 03:56:02 +02:00
aInputs [ i ] . onclick = aInputs [ i ] . onkeyup = upit ;
}
}
window . onload = blurry ;
//]]>
</ script >
2005-08-03 03:50:56 +02:00
< ? php
}
add_filter ( 'admin_head' , 'add_js' );
2004-10-19 05:03:06 +02:00
include ( 'admin-header.php' );
2003-10-26 06:25:26 +01:00
2004-12-23 01:53:56 +01:00
$home_path = get_home_path ();
2004-08-27 07:20:59 +02:00
2006-05-03 00:36:06 +02:00
if ( isset ( $_POST [ 'permalink_structure' ]) || isset ( $_POST [ 'category_base' ]) ) {
check_admin_referer ( 'update-permalink' );
2006-03-31 01:12:54 +02:00
2004-10-18 06:50:08 +02:00
if ( isset ( $_POST [ 'permalink_structure' ]) ) {
2004-10-14 10:09:00 +02:00
$permalink_structure = $_POST [ 'permalink_structure' ];
2004-10-18 06:50:08 +02:00
if ( ! empty ( $permalink_structure ) )
$permalink_structure = preg_replace ( '#/+#' , '/' , '/' . $_POST [ 'permalink_structure' ]);
2004-12-03 03:38:11 +01:00
$wp_rewrite -> set_permalink_structure ( $permalink_structure );
2004-10-18 06:50:08 +02:00
}
2006-02-12 08:53:23 +01:00
2004-10-18 06:50:08 +02:00
if ( isset ( $_POST [ 'category_base' ]) ) {
2004-10-14 10:09:00 +02:00
$category_base = $_POST [ 'category_base' ];
2004-10-18 06:50:08 +02:00
if ( ! empty ( $category_base ) )
$category_base = preg_replace ( '#/+#' , '/' , '/' . $_POST [ 'category_base' ]);
2004-12-03 03:38:11 +01:00
$wp_rewrite -> set_category_base ( $category_base );
2004-10-18 06:50:08 +02:00
}
2003-10-26 06:25:26 +01:00
}
2006-02-12 08:53:23 +01:00
2006-08-30 23:46:31 +02:00
$permalink_structure = get_option ( 'permalink_structure' );
$category_base = get_option ( 'category_base' );
2004-10-14 10:09:00 +02:00
2004-09-15 17:09:39 +02:00
if ( ( ! file_exists ( $home_path . '.htaccess' ) && is_writable ( $home_path )) || is_writable ( $home_path . '.htaccess' ) )
$writable = true ;
else
$writable = false ;
2003-10-26 06:25:26 +01:00
2004-12-03 03:38:11 +01:00
if ( $wp_rewrite -> using_index_permalinks ())
2004-09-15 17:09:39 +02:00
$usingpi = true ;
else
$usingpi = false ;
2003-10-26 06:25:26 +01:00
2005-12-28 08:05:05 +01:00
$wp_rewrite -> flush_rules ();
2003-10-26 06:25:26 +01:00
?>
2004-09-15 17:09:39 +02:00
2004-05-09 07:47:02 +02:00
< ? php if ( isset ( $_POST [ 'submit' ])) : ?>
2005-08-08 03:13:22 +02:00
< div id = " message " class = " updated fade " >< p >< ? php
2005-02-14 04:22:25 +01:00
if ( $writable )
_e ( 'Permalink structure updated.' );
else
_e ( 'You should update your .htaccess now.' );
?> </p></div>
2004-04-28 06:56:29 +02:00
< ? php endif ; ?>
2004-07-28 01:37:45 +02:00
2003-10-26 06:25:26 +01:00
< div class = " wrap " >
2005-08-03 03:50:56 +02:00
< h2 >< ? php _e ( 'Customize Permalink Structure' ) ?> </h2>
2006-09-19 08:11:42 +02:00
< form name = " form " action = " options-permalink.php " method = " post " >
< ? php wp_nonce_field ( 'update-permalink' ) ?>
2006-09-19 17:11:51 +02:00
< p class = " submit " >< input type = " submit " name = " submit " value = " <?php _e('Update Permalink Structure »') ?> " /></ p >
2006-08-30 18:40:17 +02:00
< p >< ? php _e ( 'By default WordPress uses web <abbr title="Universal Resource Locator">URL</abbr>s 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 <a href="http://codex.wordpress.org/Using_Permalinks">number of tags are available</a>, and here are some examples to get you started.' ); ?> </p>
2004-05-05 09:34:41 +02:00
2005-08-03 03:50:56 +02:00
< ? php
$prefix = '' ;
2005-11-11 00:25:39 +01:00
if ( ! got_mod_rewrite () )
2005-08-03 03:50:56 +02:00
$prefix = '/index.php' ;
2005-11-11 00:25:39 +01:00
$structures = array (
'' ,
$prefix . '/%year%/%monthnum%/%day%/%postname%/' ,
$prefix . '/archives/%post_id%'
);
2005-08-03 03:50:56 +02:00
?>
< h3 >< ? php _e ( 'Common options:' ); ?> </h3>
< p >
< label >
2005-11-11 00:25:39 +01:00
< input name = " selection " type = " radio " value = " " class = " tog " < ? php checked ( '' , $permalink_structure ); ?> />
2006-08-30 23:46:31 +02:00
< ? php _e ( 'Default' ); ?> <br /> <span> » <code><?php echo get_option('home'); ?>/?p=123</code></span>
2005-11-11 00:25:39 +01:00
</ label >
</ p >
< p >
< label >
< input name = " selection " type = " radio " value = " <?php echo $structures[1] ; ?> " class = " tog " < ? php checked ( $structures [ 1 ], $permalink_structure ); ?> />
2006-08-30 23:46:31 +02:00
< ? php _e ( 'Date and name based' ); ?> <br /> <span> » <code><?php echo get_option('home') . $prefix . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/sample-post/'; ?></code></span>
2005-08-03 03:50:56 +02:00
</ label >
</ p >
< p >
< label >
2005-11-11 00:25:39 +01:00
< input name = " selection " type = " radio " value = " <?php echo $structures[2] ; ?> " class = " tog " < ? php checked ( $structures [ 2 ], $permalink_structure ); ?> />
2006-08-30 23:46:31 +02:00
< ? php _e ( 'Numeric' ); ?> <br /> <span> » <code><?php echo get_option('home') . $prefix ; ?>/archives/123</code></span>
2005-08-03 03:50:56 +02:00
</ label >
</ p >
< p >
< label >
2005-11-18 10:36:43 +01:00
< input name = " selection " id = " custom_selection " type = " radio " value = " custom " class = " tog "
2005-11-11 00:25:39 +01:00
< ? php if ( ! in_array ( $permalink_structure , $structures ) ) { ?>
2005-08-03 03:50:56 +02:00
checked = " checked "
< ? php } ?>
2006-11-19 08:56:05 +01:00
/>
2006-02-12 08:53:23 +01:00
< ? php _e ( 'Custom, specify below' ); ?>
2005-08-03 03:50:56 +02:00
</ label >
< br />
</ p >
2006-12-21 11:10:04 +01:00
< p id = " customstructure " >< ? php _e ( 'Custom structure' ); ?> : <input name="permalink_structure" id="permalink_structure" type="text" class="code" style="width: 60%;" value="<?php echo attribute_escape($permalink_structure); ?>" size="50" /></p>
2004-09-15 17:09:39 +02:00
2005-08-03 03:50:56 +02:00
< h3 >< ? php _e ( 'Optional' ); ?> </h3>
2005-02-14 01:51:43 +01:00
< ? php if ( $is_apache ) : ?>
2006-08-30 18:40:17 +02:00
< p >< ? php _e ( 'If you like, you may enter a custom prefix for your category <abbr title="Universal Resource Locator">URL</abbr>s here. For example, <code>/taxonomy/tags</code> would make your category links like <code>http://example.org/taxonomy/tags/uncategorized/</code>. If you leave this blank the default will be used.' ) ?> </p>
2005-02-14 01:51:43 +01:00
< ? php else : ?>
2006-08-30 18:40:17 +02:00
< p >< ? php _e ( 'If you like, you may enter a custom prefix for your category <abbr title="Universal Resource Locator">URL</abbr>s here. For example, <code>/index.php/taxonomy/tags</code> would make your category links like <code>http://example.org/index.php/taxonomy/tags/uncategorized/</code>. If you leave this blank the default will be used.' ) ?> </p>
2005-02-14 01:51:43 +01:00
< ? php endif ; ?>
2004-05-05 09:34:41 +02:00
< p >
2006-12-21 11:10:04 +01:00
< ? php _e ( 'Category base' ); ?> : <input name="category_base" type="text" class="code" value="<?php echo attribute_escape($category_base); ?>" size="30" />
2004-05-05 09:34:41 +02:00
</ p >
2004-04-19 10:09:27 +02:00
< p class = " submit " >
2004-06-11 20:23:12 +02:00
< input type = " submit " name = " submit " value = " <?php _e('Update Permalink Structure »') ?> " />
2003-10-26 06:25:26 +01:00
</ p >
</ form >
2004-09-15 17:09:39 +02:00
< ? php if ( $permalink_structure && ! $usingpi && ! $writable ) : ?>
2005-12-12 02:48:12 +01:00
< p >< ? php _e ( 'If your <code>.htaccess</code> file were <a href="http://codex.wordpress.org/Make_a_Directory_Writable">writable</a>, we could do this automatically, but it isn’t so these are the mod_rewrite rules you should have in your <code>.htaccess</code> file. Click in the field and press <kbd>CTRL + a</kbd> to select all.' ) ?> </p>
2004-07-28 01:37:45 +02:00
< form action = " options-permalink.php " method = " post " >
2006-05-03 00:36:06 +02:00
< ? php wp_nonce_field ( 'update-permalink' ) ?>
2004-08-14 19:36:32 +02:00
< p >
2004-12-03 03:38:11 +01:00
< textarea rows = " 5 " style = " width: 98%; " name = " rules " >< ? php echo $wp_rewrite -> mod_rewrite_rules (); ?>
2004-05-31 19:22:25 +02:00
</ textarea >
2004-04-15 09:53:45 +02:00
</ p >
2004-03-08 06:12:11 +01:00
</ form >
2004-12-12 07:31:01 +01:00
< ? php endif ; ?>
2004-09-15 17:09:39 +02:00
2004-05-14 10:38:34 +02:00
</ div >
2003-10-26 06:25:26 +01:00
2005-12-12 02:48:12 +01:00
< ? php require ( './admin-footer.php' ); ?>