2003-10-26 01:25:26 -04:00
< ? php
2004-10-18 23:03:06 -04:00
require_once ( 'admin.php' );
2006-11-18 02:31:29 -05:00
$title = __ ( 'Permalink Options' );
$parent_file = 'options-general.php' ;
2005-08-02 21:50:56 -04:00
function add_js () {
?>
< script type = " text/javascript " >
2005-08-02 21:56:02 -04: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 04:36:43 -05:00
var structure = document . getElementById ( 'permalink_structure' );
structure . onfocus = function () { document . getElementById ( 'custom_selection' ) . checked = 'checked' ; }
2005-08-02 21:56:02 -04:00
var aInputs = document . getElementsByTagName ( 'input' );
2006-02-12 02:53:23 -05:00
for ( var i = 0 ; i < aInputs . length ; i ++ ) {
2005-08-02 21:56:02 -04:00
aInputs [ i ] . onclick = aInputs [ i ] . onkeyup = upit ;
}
}
window . onload = blurry ;
//]]>
</ script >
2005-08-02 21:50:56 -04:00
< ? 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
2006-05-02 18:36:06 -04:00
if ( isset ( $_POST [ 'permalink_structure' ]) || isset ( $_POST [ 'category_base' ]) ) {
check_admin_referer ( 'update-permalink' );
2006-03-30 18:12:54 -05:00
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
}
2006-02-12 02:53:23 -05: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
}
2006-02-12 02:53:23 -05:00
2006-08-30 17:46:31 -04:00
$permalink_structure = get_option ( 'permalink_structure' );
$category_base = get_option ( 'category_base' );
2004-10-14 04:09:00 -04:00
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
2005-12-28 02:05:05 -05:00
$wp_rewrite -> flush_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-08-07 21:13:22 -04:00
< div id = " message " class = " updated fade " >< p >< ? php
2005-02-13 22:22:25 -05:00
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>
2006-09-19 02:11:42 -04:00
< form name = " form " action = " options-permalink.php " method = " post " >
< ? php wp_nonce_field ( 'update-permalink' ) ?>
2006-09-19 11:11:51 -04:00
< p class = " submit " >< input type = " submit " name = " submit " value = " <?php _e('Update Permalink Structure »') ?> " /></ p >
2006-08-30 12:40:17 -04: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 03:34:41 -04:00
2005-08-02 21:50:56 -04:00
< ? php
$prefix = '' ;
2005-11-10 18:25:39 -05:00
if ( ! got_mod_rewrite () )
2005-08-02 21:50:56 -04:00
$prefix = '/index.php' ;
2005-11-10 18:25:39 -05:00
$structures = array (
'' ,
$prefix . '/%year%/%monthnum%/%day%/%postname%/' ,
$prefix . '/archives/%post_id%'
);
2005-08-02 21:50:56 -04:00
?>
< h3 >< ? php _e ( 'Common options:' ); ?> </h3>
< p >
< label >
2005-11-10 18:25:39 -05:00
< input name = " selection " type = " radio " value = " " class = " tog " < ? php checked ( '' , $permalink_structure ); ?> />
2006-08-30 17:46:31 -04:00
< ? php _e ( 'Default' ); ?> <br /> <span> » <code><?php echo get_option('home'); ?>/?p=123</code></span>
2005-11-10 18:25:39 -05: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 17:46:31 -04: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-02 21:50:56 -04:00
</ label >
</ p >
< p >
< label >
2005-11-10 18:25:39 -05:00
< input name = " selection " type = " radio " value = " <?php echo $structures[2] ; ?> " class = " tog " < ? php checked ( $structures [ 2 ], $permalink_structure ); ?> />
2006-08-30 17:46:31 -04:00
< ? php _e ( 'Numeric' ); ?> <br /> <span> » <code><?php echo get_option('home') . $prefix ; ?>/archives/123</code></span>
2005-08-02 21:50:56 -04:00
</ label >
</ p >
< p >
< label >
2005-11-18 04:36:43 -05:00
< input name = " selection " id = " custom_selection " type = " radio " value = " custom " class = " tog "
2005-11-10 18:25:39 -05:00
< ? php if ( ! in_array ( $permalink_structure , $structures ) ) { ?>
2005-08-02 21:50:56 -04:00
checked = " checked "
< ? php } ?>
2006-11-19 02:56:05 -05:00
/>
2006-02-12 02:53:23 -05:00
< ? php _e ( 'Custom, specify below' ); ?>
2005-08-02 21:50:56 -04:00
</ label >
< br />
</ p >
2006-12-21 05:10:04 -05: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 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 ) : ?>
2006-08-30 12:40:17 -04: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-13 19:51:43 -05:00
< ? php else : ?>
2006-08-30 12:40:17 -04: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-13 19:51:43 -05:00
< ? php endif ; ?>
2004-05-05 03:34:41 -04:00
< p >
2006-12-21 05:10:04 -05: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 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 ) : ?>
2005-12-11 20:48:12 -05: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-27 19:37:45 -04:00
< form action = " options-permalink.php " method = " post " >
2006-05-02 18:36:06 -04:00
< ? php wp_nonce_field ( 'update-permalink' ) ?>
2004-08-14 13:36:32 -04:00
< p >
2007-01-05 04:27:22 -05:00
< textarea rows = " 5 " style = " width: 98%; " name = " rules " >< ? php echo wp_specialchars ( $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
2005-12-11 20:48:12 -05:00
< ? php require ( './admin-footer.php' ); ?>