Xóa bỏ product-category và toàn bộ slug của danh mục cha khỏi đường dẫn của Woocommerce

Cập nhật lần cuối 16/05/2021 by trong Woocommerce vào 04/04/2017 có 22802 Views
Chú ý: Cách dưới đây mình dùng code để làm. Cách này chỉ phù hợp với các bạn biết code và thích vọc thêm để từ đó làm nhiều trường hợp khác nhau. Ngoài ra code này không thích hợp với site nhiều sản phẩm. Vì vậy mình khuyên dùng plugin Premmerce Permalink Manager for WooCommerce để thay thế code bên dưới nhé.

Sau 1 loạt bài viết về thiết lập đường dẫn tĩnh cho woocommerce như Hướng dẫn xóa product, product-category trong đường dẫn của woocommerce hay 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 hôm nay mình sẽ hướng dẫn các bạn cách xóa bỏ product-category đồng thời bỏ toàn bộ slug của danh mục cha ra khỏi đường dẫn tĩnh

Xóa bỏ product-category và toàn bộ slug của danh mục cha khỏi đường dẫn của Woocommerce

Xóa bỏ product-category và toàn bộ slug của danh mục cha khỏi đường dẫn của Woocommerce

Mình cũng không hiểu tại sao trong SEO lại cần đường dẫn kiểu rút gọn như vậy. Thấy bảo để tối ưu SEO thì biết thế… nhưng có cầu thì có cung… sau khi có yêu cầu mình đã ngâm cứu và viết ra đoạn code có thể đáp ứng yêu cầu trên.

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

Để duy trì blog nên mình có làm aff cho 1 số bên hosting. Nhưng dù aff mình cũng chọn 1 số nhà cung cấp uy tín về chất lượng và support nên các bạn cứ yên tâm nhé.

Nếu có mua hosting mà có trong list dưới đây các bạn click vào link trước khi mua để ủng hộ mình nhé. Mình cảm ơn nhiều

  1. Hướng dẫn xóa product, product-category trong đường dẫn của woocommerce
  2. 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

Chúng ta sẽ lấy 1 ví dụ cụ thể để hiểu rõ hơn yêu cầu là cái mà đoạn code này làm được nhé.

Mặc định chúng ta có

Danh mục sản phẩm: http://domain.com/product-category/may-tinh
Danh mục con cấp 1: http://domain.com/product-category/may-tinh/may-tinh-de-ban
Danh mục con cấp 2: http://domain.com/product-category/may-tinh/may-tinh-de-ban/may-tinh-dell

Sau khi áp dụng đoạn code này chúng ta có:

Danh mục sản phẩm: http://domain.com/may-tinh
Danh mục con cấp 1: http://domain.com/may-tinh-de-ban
Danh mục con cấp 2: http://domain.com/may-tinh-dell

Code xóa bỏ product-category và bỏ toàn bộ slug của danh mục cha ra khỏi đường dẫn tĩnh

Chỉ cần cho đoạn code sau vào file functions.php của theme đang sử dụng. Sau đó vào update lại permalink tại Setting->Permalink->Save Change.

/*
 * Author: https://levantoan.com
 * Link https://levantoan.com/xoa-bo-product-category-va-toan-bo-slug-cua-danh-muc-cha-khoi-duong-dan-cua-woocommerce/
 * */
// Remove product cat base
add_filter('term_link', 'devvn_no_term_parents', 1000, 3);
function devvn_no_term_parents($url, $term, $taxonomy) {
    if($taxonomy == 'product_cat'){
        $term_nicename = $term->slug;
        $url = trailingslashit(get_option( 'home' )) . user_trailingslashit( $term_nicename, 'category' );
    }
    return $url;
}

// Add our custom product cat rewrite rules
function devvn_no_product_cat_parents_rewrite_rules($flash = false) {
    $terms = get_terms( array(
        'taxonomy' => 'product_cat',
        'post_type' => 'product',
        'hide_empty' => false,
    ));
    if($terms && !is_wp_error($terms)){
        foreach ($terms as $term){
            $term_slug = $term->slug;
            add_rewrite_rule($term_slug.'/?$', 'index.php?product_cat='.$term_slug,'top');
            add_rewrite_rule($term_slug.'/page/([0-9]{1,})/?$', 'index.php?product_cat='.$term_slug.'&paged=$matches[1]','top');
            add_rewrite_rule($term_slug.'/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$', 'index.php?product_cat='.$term_slug.'&feed=$matches[1]','top');
        }
    }
    if ($flash == true)
        flush_rewrite_rules(false);
}
add_action('init', 'devvn_no_product_cat_parents_rewrite_rules');

/*Sửa lỗi khi tạo mới taxomony bị 404*/
add_action( 'create_term', 'devvn_new_product_cat_edit_success', 10);
add_action( 'edit_terms', 'devvn_new_product_cat_edit_success', 10);
add_action( 'delete_term', 'devvn_new_product_cat_edit_success', 10);
function devvn_new_product_cat_edit_success( ) {
    devvn_no_product_cat_parents_rewrite_rules(true);
}

Chú ý:

– Nhiều bạn không biết nhiều code thì copy đoạn code trên cho xuống cuối cùng file functions.php trong theme mà bạn đang dùng. Trước thẻ đóng ?> nếu có nhé. Không đến lúc lỗi 500 hay trang trắng lại không biết tại sao 😀
– Khi các bạn đã làm đường dẫn tính của danh mục sản phẩm về dạng này thì chú ý các link của bài viết hoặc page nhé. Nếu bị trùng slug thì sẽ dẫn đến sai đó ạ 🙂 điều này là tất nhiên rồi… Đều là chữ A không thể bắt mình đọc là chữ B được ạ

Chú ý quan trọng:

Nếu website của các bạn đã chạy 1 thời gian trước đây rồi. Và đã được google index link của danh mục sản phẩm rồi mà bây giờ muốn chuyển sang dạng url rút gọn này và không muốn mất đi thứ dạng google thì hãy comment bên dưới. Mình sẽ giúp các bạn giải quyết vấn đề đó (Không free nhé)

Chúc các bạn SEO lên top 🙂 không hiểu chỗ nào hoặc lỗi thì comment bên dưới mình giải đáp nhé

 

4.6/5 - (42 votes)
  • Bình luận
Sản phẩm nổi bật của Toản
x