2003-10-26 01:25:26 -04:00
< ? php
2004-10-18 23:03:06 -04:00
require_once ( 'admin.php' );
2004-04-24 23:59:12 -04:00
$title = __ ( 'Permalink Options' );
2004-10-18 23:03:06 -04:00
$parent_file = 'options-general.php' ;
2005-08-02 21:50:56 -04:00
function add_js () {
?>
< script type = " text/javascript " >
//<![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 ;
var aInputs = document . getElementsByTagName ( 'input' );
for ( var i = 0 ; i < aInputs . length ; i ++ ) {
aInputs [ i ] . onclick = aInputs [ i ] . onkeyup = upit ;
}
}
window . onload = blurry ;
//]]>
</ script >
< ? php
}
add_filter ( 'admin_head' , 'add_js' );
2004-10-18 23:03:06 -04:00
include ( 'admin-header.php' );
2003-10-26 01:25:26 -04:00
2004-12-22 19:53:56 -05:00
$home_path = get_home_path ();
2004-08-27 01:20:59 -04:00
2004-10-14 04:09:00 -04:00
if ( isset ( $_POST ) ) {
2004-10-18 00:50:08 -04:00
if ( isset ( $_POST [ 'permalink_structure' ]) ) {
2004-10-14 04:09:00 -04:00
$permalink_structure = $_POST [ 'permalink_structure' ];
2004-10-18 00:50:08 -04:00
if ( ! empty ( $permalink_structure ) )
$permalink_structure = preg_replace ( '#/+#' , '/' , '/' . $_POST [ 'permalink_structure' ]);
2004-12-02 21:38:11 -05:00
$wp_rewrite -> set_permalink_structure ( $permalink_structure );
2004-10-18 00:50:08 -04:00
}
2004-10-14 04:09:00 -04:00
2004-10-18 00:50:08 -04:00
if ( isset ( $_POST [ 'category_base' ]) ) {
2004-10-14 04:09:00 -04:00
$category_base = $_POST [ 'category_base' ];
2004-10-18 00:50:08 -04:00
if ( ! empty ( $category_base ) )
$category_base = preg_replace ( '#/+#' , '/' , '/' . $_POST [ 'category_base' ]);
2004-12-02 21:38:11 -05:00
$wp_rewrite -> set_category_base ( $category_base );
2004-10-18 00:50:08 -04:00
}
2003-10-26 01:25:26 -04:00
}
2004-10-18 00:50:08 -04:00
2004-10-14 04:09:00 -04:00
$permalink_structure = get_settings ( 'permalink_structure' );
$category_base = get_settings ( 'category_base' );
2004-10-05 22:18:37 -04:00
generate_page_rewrite_rules ();
2004-09-15 11:09:39 -04:00
if ( ( ! file_exists ( $home_path . '.htaccess' ) && is_writable ( $home_path )) || is_writable ( $home_path . '.htaccess' ) )
$writable = true ;
else
$writable = false ;
2003-10-26 01:25:26 -04:00
2004-12-02 21:38:11 -05:00
if ( $wp_rewrite -> using_index_permalinks ())
2004-09-15 11:09:39 -04:00
$usingpi = true ;
else
$usingpi = false ;
2003-10-26 01:25:26 -04:00
2004-10-05 22:18:37 -04:00
save_mod_rewrite_rules ();
2003-10-26 01:25:26 -04:00
?>
2004-09-15 11:09:39 -04:00
2004-05-09 01:47:02 -04:00
< ? php if ( isset ( $_POST [ 'submit' ])) : ?>
2005-02-13 22:22:25 -05:00
< div class = " updated " >< p >< ? php
if ( $writable )
_e ( 'Permalink structure updated.' );
else
_e ( 'You should update your .htaccess now.' );
?> </p></div>
2004-04-28 00:56:29 -04:00
< ? php endif ; ?>
2004-07-27 19:37:45 -04:00
2003-10-26 01:25:26 -04:00
< div class = " wrap " >
2005-08-02 21:50:56 -04:00
< h2 >< ? php _e ( 'Customize Permalink Structure' ) ?> </h2>
< p >< ? php _e ( 'By default WordPress uses web URIs which have question marks and lots of numbers in them, however WordPress offers you the ability to create a custom URI 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 03:34:41 -04:00
2005-08-02 21:50:56 -04:00
< ? php
$prefix = '' ;
if ( ! $is_apache )
$prefix = '/index.php' ;
?>
< form name = " form " action = " options-permalink.php " method = " post " >
< h3 >< ? php _e ( 'Common options:' ); ?> </h3>
< p >
< label >
< input name = " selection " type = " radio " value = " <?php echo $prefix ; ?>/%year%/%monthnum%/%day%/%postname%/ " class = " tog " < ? php checked ( $prefix . '/%year%/%monthnum%/%day%/%postname%/' , $permalink_structure ); ?> />
< ? php _e ( 'Date and name based, example:' ); ?> <code><?php echo get_settings('home') . $prefix . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/sample-post/'; ?></code>
</ label >
</ p >
< p >
< label >
< input name = " selection " type = " radio " value = " <?php echo $prefix ; ?>/archives/%post_id% " class = " tog " < ? php checked ( $prefix . '/archives/%post_id%' , $permalink_structure ); ?> />
< ? php _e ( 'Numeric, example:' ); ?> <code><?php echo get_settings('home') . $prefix ; ?>/archives/123</code>
</ label >
</ p >
< p >
< label >
< input name = " selection " type = " radio " value = " custom " class = " tog "
< ? php if ( $permalink_structure != $prefix . '/archives/%post_id%' && $permalink_structure != $prefix . '/%year%/%monthnum%/%day%/%postname%/' ) { ?>
checked = " checked "
< ? php } ?>
/>
< ? php _e ( 'Custom, specify below' ); ?>
</ label >
< br />
</ p >
< p id = " customstructure " >< ? php _e ( 'Custom structure' ); ?> : <input name="permalink_structure" id="permalink_structure" type="text" class="code" style="width: 60%;" value="<?php echo $permalink_structure; ?>" size="50" /></p>
2004-09-15 11:09:39 -04:00
2005-08-02 21:50:56 -04:00
< h3 >< ? php _e ( 'Optional' ); ?> </h3>
2005-02-13 19:51:43 -05:00
< ? php if ( $is_apache ) : ?>
2005-08-02 21:50:56 -04:00
< p >< ? php _e ( 'If you like, you may enter a custom prefix for your category URIs 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-13 19:51:43 -05:00
< ? php else : ?>
2005-08-02 21:50:56 -04:00
< p >< ? php _e ( 'If you like, you may enter a custom prefix for your category URIs 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-13 19:51:43 -05:00
< ? php endif ; ?>
2004-05-05 03:34:41 -04:00
< p >
2004-09-15 11:09:39 -04:00
< ? php _e ( 'Category base' ); ?> : <input name="category_base" type="text" class="code" value="<?php echo $category_base; ?>" size="30" />
2004-05-05 03:34:41 -04:00
</ p >
2004-04-19 04:09:27 -04:00
< p class = " submit " >
2004-06-11 14:23:12 -04:00
< input type = " submit " name = " submit " value = " <?php _e('Update Permalink Structure »') ?> " />
2003-10-26 01:25:26 -04:00
</ p >
</ form >
2004-09-15 11:09:39 -04:00
< ? php if ( $permalink_structure && ! $usingpi && ! $writable ) : ?>
< p >< ? php _e ( 'If your <code>.htaccess</code> was <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-27 19:37:45 -04:00
< form action = " options-permalink.php " method = " post " >
2004-08-14 13:36:32 -04:00
< p >
2004-12-02 21:38:11 -05:00
< textarea rows = " 5 " style = " width: 98%; " name = " rules " >< ? php echo $wp_rewrite -> mod_rewrite_rules (); ?>
2004-05-31 13:22:25 -04:00
</ textarea >
2004-04-15 03:53:45 -04:00
</ p >
2004-03-08 00:12:11 -05:00
</ form >
2004-12-12 01:31:01 -05:00
< ? php endif ; ?>
2004-09-15 11:09:39 -04:00
2004-05-14 04:38:34 -04:00
</ div >
2003-10-26 01:25:26 -04:00
2004-09-15 11:09:39 -04:00
< ? php require ( './admin-footer.php' ); ?>