url rewriting - Rewrite urlpermalink for default archive - yearlymonthly

admin2025-06-05  6

I want to change the structure of yearly/monthly archive URL of default post type 'post'.

As we know be default the URLs are like:

Default:

but want them rewritten, so end up like this:

New:

i tried following but do seem to work:

add_rewrite_rule("about/blog/archive/([0-9]{4})/([0-9]{2})/page/?([0-9]{1,})/?",'index.php?post_type=post&year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]','top');

add_rewrite_rule("about/blog/archive/([0-9]{4})/([0-9]{2})/?",'index.php?post_type=post&year=$matches[1]&monthnum=$matches[2]','top');

add_rewrite_rule("about/blog/archive/([0-9]{4})/page/?([0-9]{1,})/?",'index.php?post_type=post&year=$matches[1]&paged=$matches[2]','top');

add_rewrite_rule("about/blog/archive/([0-9]{4})/?",'index.php?post_type=post&year=$matches[1]','top');

I'd like someone to point to the right direction, need more info do leave a comment.

thanks.

I want to change the structure of yearly/monthly archive URL of default post type 'post'.

As we know be default the URLs are like:

Default: http://wwww.domain/2013/09

but want them rewritten, so end up like this:

New: http://wwww.domain/about/blog/archive/2013/09

i tried following but do seem to work:

add_rewrite_rule("about/blog/archive/([0-9]{4})/([0-9]{2})/page/?([0-9]{1,})/?",'index.php?post_type=post&year=$matches[1]&monthnum=$matches[2]&paged=$matches[3]','top');

add_rewrite_rule("about/blog/archive/([0-9]{4})/([0-9]{2})/?",'index.php?post_type=post&year=$matches[1]&monthnum=$matches[2]','top');

add_rewrite_rule("about/blog/archive/([0-9]{4})/page/?([0-9]{1,})/?",'index.php?post_type=post&year=$matches[1]&paged=$matches[2]','top');

add_rewrite_rule("about/blog/archive/([0-9]{4})/?",'index.php?post_type=post&year=$matches[1]','top');

I'd like someone to point to the right direction, need more info do leave a comment.

thanks.

Share Improve this question asked Sep 28, 2013 at 13:03 TheDeveloperTheDeveloper 2684 silver badges10 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 2

You can do this without adding rewrite rules by changing the $date_structure of the $wp_rewrite instance of the WP_Rewrite class:

function wpa116030_init(){
    global $wp_rewrite;
    $wp_rewrite->date_structure = 'about/blog/archive/%year%/%monthnum%/%day%';
}
add_action( 'init', 'wpa116030_init' );

Visit your Permalinks settings page after adding this code to flush the rewrite rules.

转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749079399a316182.html

最新回复(0)