Xóa bỏ /category/ và slug category cha khỏi đường dẫn category WordPress

Chia sẻ

Hướng dẫn xóa bỏ /category/ và slug của category cha ra khỏi đường dẫn của category. Nếu bạn chỉ muốn xóa bỏ /category/ thì có thể dùng Yoast Seo để thực hiện việc này (Có hướng dẫn ở cuối bài). Xóa slug category giúp đường dẫn trở nên gọn hơn và đẹp hơn.

Nếu muốn xóa bỏ cả 2 vừa xóa category vừa xóa slug thì hãy dùng đoạn code bên dưới. Hãy dùng đoạn code bên dưới nhé, bạn không cần bất cứ plugin nào khác và không cần thực hiện thêm thao tác nào khác nha. Thêm code thì không cần dùng plugin gì nữa.
Xóa đường dẫn danh mục tin tức chỉ còn link bài viết, xóa link danh mục dễ dàng bằng cách thêm code.

Xóa bỏ /category/ và slug category cha khỏi đường dẫn category WordPress

Xóa bỏ /category/ và slug category cha khỏi đường dẫn category

Các bạn thêm code bên dưới vào file functions.php trong theme đang sử dụng sau đó vào update lại permalink tại (Settings -> Permalink -> Save change) 
 
// Xóa bỏ /category/ và slug category cha khỏi đường dẫn category
add_filter('term_link', 'chowordpress_no_category_parents', 1000, 3);
function chowordpress_no_category_parents($url, $term, $taxonomy) {
    if($taxonomy == 'category'){
        $term_nicename = $term->slug;
        $url = trailingslashit(get_option( 'home' )) . user_trailingslashit( $term_nicename, 'category' );
    }
    return $url;
}
// Check url mới
function chowordpress_no_category_parents_rewrite_rules($flash = false) {
    $terms = get_terms( array(
        'taxonomy' => 'category',
        'post_type' => 'post',
        'hide_empty' => false,
    ));
    if($terms && !is_wp_error($terms)){
        foreach ($terms as $term){
            $term_slug = $term->slug;
            add_rewrite_rule($term_slug.'/?$', 'index.php?category_name='.$term_slug,'top');
            add_rewrite_rule($term_slug.'/page/([0-9]{1,})/?$', 'index.php?category_name='.$term_slug.'&paged=$matches[1]','top');
            add_rewrite_rule($term_slug.'/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$', 'index.php?category_name='.$term_slug.'&feed=$matches[1]','top');
        }
    }
    if ($flash == true)
        flush_rewrite_rules(false);
}
add_action('init', 'chowordpress_no_category_parents_rewrite_rules');
 
/*Sửa lỗi khi tạo mới category bị 404*/
function chowordpress_new_category_edit_success() {
    chowordpress_no_category_parents_rewrite_rules(true);
}
add_action('created_category','chowordpress_new_category_edit_success');
add_action('edited_category','chowordpress_new_category_edit_success');
add_action('delete_category','chowordpress_new_category_edit_success');

Hướng dẫn xóa Slug bằng Yoast SEO


Link: Hướng dẫn cách chỉ xóa bỏ /category/ bằng plugin Yoast SEO

back top