How to create a permalink structure for posts in a specific category

I am not sure if this is the best solution or not, but it works:

function movie_review_permalink( $url, $post, $leavename ) {
    $category = get_the_category($post->ID); 
    if (  !empty($category) && $category[0]->slug == "test" ) { //change 'test' to your category slug
        $date=date_create($post->post_date);
        $my_date = date_format($date,"dmY");
        $url= trailingslashit( home_url("https://wordpress.stackexchange.com/". $category[0]->slug ."https://wordpress.stackexchange.com/". $post->post_name .'-'. $my_date ."https://wordpress.stackexchange.com/" ) );
    }
    return $url;
}
add_filter( 'post_link', 'movie_review_permalink', 10, 3 );

Above code will make your post permalink for category test to http://wpHomeURL/test/post-name-ddmmyyyy structure.

Now you will need to add rewrite rule o make this work.

function movie_review_rewrite_rules( $wp_rewrite ) {
    $new_rules['^test/([^/]+)-([0-9]+)/?'] = 'index.php?name=$matches[1]'; //change 'test' to your category slug
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
    return $wp_rewrite;
}
add_action('generate_rewrite_rules', 'movie_review_rewrite_rules');

Hope this helps!

Leave a Comment