Mini Shell
<?php
/**
* Permalink Settings Administration Screen.
*
* @package SitePad
* @subpackage Administration
*/
/** SitePad Administration Bootstrap */
require_once( dirname( __FILE__ ) . '/admin.php' );
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( __( 'Sorry, you are not allowed to manage options for this site.' ) );
}
$title = __( 'Permalink Settings' );
$parent_file = 'options-general.php';
$home_path = get_home_path();
$iis7_permalinks = iis7_supports_permalinks();
$permalink_structure = get_option( 'permalink_structure' );
$prefix = $blog_prefix = '';
if ( ! got_url_rewrite() ) {
$prefix = '/index.php';
}
$category_base = get_option( 'category_base' );
$tag_base = get_option( 'tag_base' );
$update_required = false;
$writable = false;
$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'] ) ) {
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'] ) ) {
$category_base = $_POST['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'] ) ) {
$tag_base = $_POST['tag_base'];
if ( ! empty( $tag_base ) ) {
$tag_base = $blog_prefix . preg_replace( '#/+#', '/', '/' . str_replace( '#', '', $tag_base ) );
}
$wp_rewrite->set_tag_base( $tag_base );
}
$message = __( 'Permalink structure updated.' );
// Flush rules and rebuild them
flush_rewrite_rules();
if ( ! get_settings_errors() ) {
add_settings_error( 'general', 'settings_updated', $message, 'updated' );
}
set_transient( 'settings_errors', get_settings_errors(), 30 );
wp_redirect( admin_url( 'options-permalink.php?settings-updated=true' ) );
exit;
}
//flush_rewrite_rules();
require( ABSPATH . 'site-admin/admin-header.php' );
?>
<div class="wrap">
<h1><?php echo esc_html( $title ); ?></h1>
<form name="form" action="options-permalink.php" method="post">
<?php wp_nonce_field( 'update-permalink' );
$structures = array(
0 => '',
1 => $prefix . '/%year%/%monthnum%/%day%/%postname%/',
2 => $prefix . '/%year%/%monthnum%/%postname%/',
3 => $prefix . '/' . _x( 'archives', 'sample permalink base' ) . '/%post_id%',
4 => $prefix . '/%postname%/',
);
?>
<table class="form-table permalink-structure">
<tr>
<th><label><input name="selection" type="radio" value="" <?php checked( '', $permalink_structure ); ?> /> <?php _e( 'Plain' ); ?></label></th>
<td><code><?php echo get_option( 'home' ); ?>/?p=123</code></td>
</tr>
<tr>
<th><label><input name="selection" type="radio" value="<?php echo esc_attr( $structures[1] ); ?>" <?php checked( $structures[1], $permalink_structure ); ?> /> <?php _e( 'Day and name' ); ?></label></th>
<td><code><?php echo get_option( 'home' ) . $blog_prefix . $prefix . '/' . date( 'Y' ) . '/' . date( 'm' ) . '/' . date( 'd' ) . '/' . _x( 'sample-post', 'sample permalink structure' ) . '/'; ?></code></td>
</tr>
<tr>
<th><label><input name="selection" type="radio" value="<?php echo esc_attr( $structures[2] ); ?>" <?php checked( $structures[2], $permalink_structure ); ?> /> <?php _e( 'Month and name' ); ?></label></th>
<td><code><?php echo get_option( 'home' ) . $blog_prefix . $prefix . '/' . date( 'Y' ) . '/' . date( 'm' ) . '/' . _x( 'sample-post', 'sample permalink structure' ) . '/'; ?></code></td>
</tr>
<tr>
<th><label><input name="selection" type="radio" value="<?php echo esc_attr( $structures[3] ); ?>" <?php checked( $structures[3], $permalink_structure ); ?> /> <?php _e( 'Numeric' ); ?></label></th>
<td><code><?php echo get_option( 'home' ) . $blog_prefix . $prefix . '/' . _x( 'archives', 'sample permalink base' ) . '/123'; ?></code></td>
</tr>
<tr>
<th><label><input name="selection" type="radio" value="<?php echo esc_attr( $structures[4] ); ?>" <?php checked( $structures[4], $permalink_structure ); ?> /> <?php _e( 'Post name' ); ?></label></th>
<td><code><?php echo get_option( 'home' ) . $blog_prefix . $prefix . '/' . _x( 'sample-post', 'sample permalink structure' ) . '/'; ?></code></td>
</tr>
<tr>
<th>
<label><input name="selection" id="custom_selection" type="radio" value="custom" <?php checked( ! in_array( $permalink_structure, $structures ) ); ?> />
<?php _e( 'Custom Structure' ); ?>
</label>
</th>
<td>
<code><?php echo get_option( 'home' ) . $blog_prefix; ?></code>
<input name="permalink_structure" id="permalink_structure" type="text" value="<?php echo esc_attr( $permalink_structure ); ?>" class="regular-text code" />
<div class="available-structure-tags hide-if-no-js">
<div id="custom_selection_updated" aria-live="assertive" class="screen-reader-text"></div>
<?php
$available_tags = array(
/* translators: %s: permalink structure tag */
'year' => __( '%s (The year of the post, four digits, for example 2004.)' ),
/* translators: %s: permalink structure tag */
'monthnum' => __( '%s (Month of the year, for example 05.)' ),
/* translators: %s: permalink structure tag */
'day' => __( '%s (Day of the month, for example 28.)' ),
/* translators: %s: permalink structure tag */
'hour' => __( '%s (Hour of the day, for example 15.)' ),
/* translators: %s: permalink structure tag */
'minute' => __( '%s (Minute of the hour, for example 43.)' ),
/* translators: %s: permalink structure tag */
'second' => __( '%s (Second of the minute, for example 33.)' ),
/* translators: %s: permalink structure tag */
'post_id' => __( '%s (The unique ID of the post, for example 423.)' ),
/* translators: %s: permalink structure tag */
'postname' => __( '%s (The sanitized post title (slug).)' ),
/* translators: %s: permalink structure tag */
'category' => __( '%s (Category slug. Nested sub-categories appear as nested directories in the URL.)' ),
/* translators: %s: permalink structure tag */
'author' => __( '%s (A sanitized version of the author name.)' ),
);
/**
* Filters the list of available permalink structure tags on the Permalinks settings page.
*
* @since 4.8.0
*
* @param string[] $available_tags An array of key => value pairs of available permalink structure tags.
*/
$available_tags = apply_filters( 'available_permalink_structure_tags', $available_tags );
/* translators: %s: permalink structure tag */
$structure_tag_added = __( '%s added to permalink structure' );
/* translators: %s: permalink structure tag */
$structure_tag_already_used = __( '%s (already used in permalink structure)' );
if ( ! empty( $available_tags ) ) :
?>
<p><?php _e( 'Available tags:' ); ?></p>
<ul role="list">
<?php
foreach ( $available_tags as $tag => $explanation ) {
?>
<li>
<button type="button"
class="button button-secondary"
aria-label="<?php echo esc_attr( sprintf( $explanation, $tag ) ); ?>"
data-added="<?php echo esc_attr( sprintf( $structure_tag_added, $tag ) ); ?>"
data-used="<?php echo esc_attr( sprintf( $structure_tag_already_used, $tag ) ); ?>">
<?php echo '%' . $tag . '%'; ?>
</button>
</li>
<?php
}
?>
</ul>
<?php endif; ?>
</div>
</td>
</tr>
</table>
<h2 class="title"><?php _e( 'Optional' ); ?></h2>
<p>
<?php
/* translators: %s: placeholder that must come at the start of the URL */
printf( __( 'If you like, you may enter custom structures for your category and tag URLs here. For example, using <code>topics</code> as your category base would make your category links like <code>%s/topics/uncategorized/</code>. If you leave these blank the defaults will be used.' ), get_option( 'home' ) . $blog_prefix . $prefix );
?>
</p>
<table class="form-table">
<tr>
<th><label for="category_base"><?php /* translators: prefix for category permalinks */ _e( 'Category base' ); ?></label></th>
<td><?php echo $blog_prefix; ?> <input name="category_base" id="category_base" type="text" value="<?php echo esc_attr( $category_base ); ?>" class="regular-text code" /></td>
</tr>
<tr>
<th><label for="tag_base"><?php _e( 'Tag base' ); ?></label></th>
<td><?php echo $blog_prefix; ?> <input name="tag_base" id="tag_base" type="text" value="<?php echo esc_attr( $tag_base ); ?>" class="regular-text code" /></td>
</tr>
<?php do_settings_fields( 'permalink', 'optional' ); ?>
</table>
<?php do_settings_sections( 'permalink' ); ?>
<?php submit_button(); ?>
</form>
</div>
<?php require( ABSPATH . 'site-admin/admin-footer.php' ); ?>
Zerion Mini Shell 1.0