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

Cập nhật lần cuối 10/06/2017 by trong WordPress vào 10/06/2017 có 522 Views

Trong bài viết này chúng ta cùng nhau 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). Còn bạn muốn xóa bỏ cả 2 thì hãy dùng đoạn code bên dưới. Khi đã dùng đoạn code bên dưới thì bạn không cần bất cứ plugin nào khác vaf không cần thực hiện tthêm thao tác nào khác nha 🙂

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

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

Nội dung bài viết:

  1. Code xóa bỏ /category/ và slug category cha không dùng plugin
  2. Hướng dẫn cách chỉ xóa bỏ /category/ bằng plugin Yoast SEO

Các bài viết có thể bạn quan tâm:

  1. Xóa bỏ product-category và toàn bộ slug của danh mục cha khỏi đường dẫn của Woocommerce 
  2. Hướng dẫn xóa product, product-category trong đường dẫn của woocommerce
  3. Cách cài đặt base của danh mục sản phẩm giống với base của trang sản phẩm

Code xóa bỏ /category/slug category cha không dùng plugin

Việc bạn cần làm là copy đoạn 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) http://levantoan.com

// Remove Parent Category from Child Category URL
add_filter('term_link', 'devvn_no_category_parents', 1000, 3);
function devvn_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;
}
// Rewrite url mới
function devvn_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', 'devvn_no_category_parents_rewrite_rules');

/*Sửa lỗi khi tạo mới category bị 404*/
function devvn_new_category_edit_success() {
    devvn_no_category_parents_rewrite_rules(true);
}
add_action('created_category','devvn_new_category_edit_success');
add_action('edited_category','devvn_new_category_edit_success');
add_action('delete_category','devvn_new_category_edit_success');

Trong quá trình sử dụng có bất kỳ lỗi gì hãy để lại phản hồi bên dưới mình sẽ giải đáp nha.

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

Yêu cầu bắt buộc là bạn phải cài plugin Yoast SEO . Khi cài mới các cài đặt nâng cao sẽ bị ẩn đi. Vì vậy bạn cần vào mở nó lên bằng cách sau:

Bước 1: vào wp admin  SEO -> tab Features -> Chọn Enabled mục Advanced settings pages -> Save changes

Bước 2: Vào SEO -> Advanced -> tab Permalinks -> Change URLs -> chọn Remove tại Strip the category base (usually /category/) from the category URL. -> Save changes

xóa category bằng Yoast SEO

Xóa category bằng Yoast SEO

Chúc các bạn thành công ^^

Xóa bỏ /category/ và slug category cha khỏi đường dẫn category
4.8 (95%) 4 votes
  • Bình luận
Có thể bạn quan tâm
x