Change permalink on specific category wordpress

on my wordress site i need to change link on my post which have specific category. On my blog i have links like that "homeulr/blog/postname". I have categort "Noblog" where i want have links like the "homeurl/postname"

Ive tried this code:

add_filter( 'post_link', 'custom_permalink', 10, 3 );
function custom_permalink( $permalink, $post, $leavename ) {
    $category = get_the_category($post->ID);
    if (  !empty($category) && $category[0]->cat_name == "Noblog" ) {
         $permalink = trailingslashit( home_url('/'. $post->post_name .'-'. $post->ID .'/' ) );
    }
    if (  !empty($category) && $category[0]->cat_name == "Academy" ) {
        $permalink = trailingslashit( home_url('/'. 'academy/' . $post->post_name . '/' ) );
    }
    return $permalink;
}
add_action('generate_rewrite_rules', 'custom_rewrite_rules');
function custom_rewrite_rules( $wp_rewrite ) {
    $new_rules['^([^/]*)-([0-9]+)/?'] = 'index.php?p=$matches[2]';
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
    return $wp_rewrite;
}

I have problem on :

$permalink = trailingslashit( home_url('/'. $post->post_name .'-'. $post->ID .'/' ) );

Without $post->ID wordpress post have a 404error.


Ответы (0 шт):