Xóa bỏ /product-category/ trong Url danh mục sản phẩm Woocommerce

4.8/5 - (38 đánh giá)

Lướt qua 1 số các diễn đàn thấy nhiều bạn hỏi cách xóa product-category (danh-muc-san-pham) trong URL của Woocommerce. Nhưng đa số các cách mà những bạn hỗ trợ áp dụng vào đều bị lỗi như là link not found (lỗi 404) hoặc là không xóa được product-category. Bài viết này, mình sẽ hướng dẫn bạn cách xóa bỏ product-category trong Woocommerce đơn giản mà không bị lỗi.

xoa-bo-product-category-trong-url-danh-muc-san-pham-woocommerce

Để xóa product-category trong link woocommerce bạn chỉ cần cài thêm 1 plugin và thiết lập như hướng dẫn dưới đây là được nhé. Mình đã làm thử trên web bán hàng của mình và hoàn toàn không có lỗi.

Hướng dẫn xóa bỏ product-category trong url woocommerce

Bình thường sau khi cài woocommerce đường dẫn url danh mục sản phẩm của bạn sẽ có dạng như: nguyenhung.net/product-category/dien-thoai-thong-minh hoặc nguyenhung.net/danh-muc-san-pham/dien-thoai-thong-minh nếu woocommerce của bạn đã Việt hóa. Bây giờ bạn muốn url có dạng: nguyenhung.net/dien-thoai-thong-minh để đường dẫn url của bạn vừa gắn gọn vừa chuẩn SEO hơn đúng không nào?

Tham khảo thêm: Xóa bỏ link /san-pham/ trong URL sản phẩm WooCommerce

Hướng dẫn xóa bỏ product-category trong URL bằng plugin

Đây là cách dễ dàng và nhanh chóng nếu bạn không biết về code. Bạn cài đặt plugin WP htaccess Control vào web.

Nếu bạn đang làm website bán hàng để kinh doanh thì bạn nên mua plugin Woocommerce SEO để có thể remove product-category woocommerce và hơn nữa plugin Woocommerce SEO giúp cho Woocommerce có thể SEO tốt hơn.

Sau khi cài đặt xong bạn truy cập vào Settings -> htaccess Control để vào thiết lập trong plugin WP htaccess Control.

Tại bảng thiết lập của plugin bạn click vào Remove Taxonomies and Author Base để mở rộng thiết lập ra. Bạn sẽ thấy các tùy chọn như hình dưới. Ở đây bạn tick vào mục Remove Product Categories Base để xóa bỏ product-category trong link woocommerce. Sau đó kéo xuống và ấn Save all changes để lưu cài đặt

xoa-bo-product-category-trong-url-danh-muc-san-pham-woocommerce-2

Hướng dẫn xóa bỏ product-category trong URL không dùng plugin

Để xóa bỏ chữ product-category trong URL mà không cần dùng plugin bạn copy đoạn code bên dưới paste vào file functions.php trong theme đang sử dụng, sau đó vào Cài đặt (Setting) -> Đường dẫn tĩnh (Permalink) -> Lưu thay đổi (Save change) để cập nhật lại đường dẫn là xong.

<?php
add_filter( 'term_link', 'devvn_product_cat_permalink', 10, 3 );
function devvn_product_cat_permalink( $url, $term, $taxonomy ){
 switch ($taxonomy):
 case 'product_cat':
 $taxonomy_slug = 'product-category'; //Thay bằng slug hiện tại của bạn. Mặc định là product-category
 if(strpos($url, $taxonomy_slug) === FALSE) break;
 $url = str_replace('/' . $taxonomy_slug, '', $url);
 break;
 endswitch;
 return $url;
}
function devvn_product_category_rewrite_rules($flash = false) {
 $terms = get_terms( array(
 'taxonomy' => 'product_cat',
 'post_type' => 'product',
 'hide_empty' => false,
 ));
 if($terms && !is_wp_error($terms)){
 $siteurl = esc_url(home_url('/'));
 foreach ($terms as $term){
 $term_slug = $term->slug;
 $baseterm = str_replace($siteurl,'',get_term_link($term->term_id,'product_cat'));
 add_rewrite_rule($baseterm.'?$','index.php?product_cat='.$term_slug,'top');
 add_rewrite_rule($baseterm.'page/([0-9]{1,})/?$', 'index.php?product_cat='.$term_slug.'&paged=$matches[1]','top');
 add_rewrite_rule($baseterm.'(?: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_product_category_rewrite_rules');
add_action( 'create_term', 'devvn_new_product_cat_edit_success', 10, 2 );
function devvn_new_product_cat_edit_success( $term_id, $taxonomy ) {
 devvn_product_category_rewrite_rules(true);
}

Lưu ý:

  • dòng 6 đang áp dụng cho slug danh mục là “product-category“. Bạn hãy kiểm tra slug (vào Cài đặt -> Đường dẫn tĩnh), nếu nó khác hãy sửa thành slug hiện tại của web bạn.
  • Sau khi làm xong nếu bị lỗi phân trang (/page/2 – 404 not found) là do ở phần permalink của posts bạn đang để dạng .html. Khi đó hãy thay code dòng 25, 26 bằng 2 dòng code dưới đây:
add_rewrite_rule($baseterm.'/page/([0-9]{1,})?$', 'index.php?product_cat='.$term_slug.'&paged=$matches[1]','top');
add_rewrite_rule($baseterm.'/(?:feed/)?(feed|rdf|rss|rss2|atom)?$', 'index.php?product_cat='.$term_slug.'&feed=$matches[1]','top');

Như vậy là bạn đã remove product-category woocommerce xong rồi đó. Bây giờ link danh mục sản phẩm của bạn sẽ có dạng: nguyenhung.net/dien-thoai-thong-minh

Tham khảo thêm: Cách xóa bỏ /category/ trong đường link URL của WordPress

Lời kết

Vậy là bạn đã biết cách xóa đoạn product-category trong đường dẫn danh mục sản phẩm Woocommerce (remove product-category woocommerce) rồi nhé. Cách xóa rất đơn giản đúng không nào. Chỉ cần cài thêm plugin WP htaccess Control mọi thứ sẽ trở lên đơn giản hơn nhiều.

Cảm ơn bạn đã theo dõi blog Nguyễn Hùng! Chúc các bạn thành công.

Nguyễn Hùng

Internet là nơi mình học được những gì về Wordpress, SEO, SEM, MMO và kiến thức máy tính. Những chia sẻ của mình là những thứ mình học được và đã làm thành công, có thể nó chưa được hoàn hảo nhưng nó sẽ hữu ích với bạn.

Nhận thông báo
Thông báo qua email khi
guest

23 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận
anh thọ xuân

Mình cần rút gọn link của “Danh-muc-san-pham” ad nhé
Hiện tại là: “https://abc.net/danh-muc-san-pham/xyz.html”
Mình muốn rút gọn lại thành “https://abc.net/xyz.html”
Mình đã thử rút gọn nhưng nó mất luôn cả đuôi “.html”

Linhlanweb

WP mặc định cuối link là dấu / hoặc không có. Nhưng nhiều bạn thích link .html ở cuối nên đã bỏ dấu / đi và thêm ở .html ở cuối link đó bạn.
Nếu làm theo cách này thì chắc chắn .html sẽ bị mất

Elip

Cho mình hỏi làm sao để cài load trang sản phẩm mà không bị tự động tạo page-2, page-3

Nguyễn Bá Vinh

“Để xóa bỏ chữ product-category trong URL mà không cần dùng plugin bạn copy đoạn code bên dưới paste vào file functions.php trong theme đang sử dụng”

Dạ anh ơi,

Anh cho em hỏi: Làm thế nào để tìm ra file “functions.php” ạ và tìm “theme đang sử dụng” như thế nào ạ ?

Em xin phép được xin lỗi trước vì nếu câu hỏi quá dễ mà cũng làm phiền anh. Thật sự em không biết tìm như thế nào cả.

Em lần đầu tập làm web nên rất nhiều thứ còn bỡ ngỡ ạ

Mong anh giúp em ạ

Em xin cảm ơn anh rất nhiều !

Nguyễn Bá Vinh

Dạ, em cảm ơn anh nhiều ạ !

tròn xinh

Cho mình hỏi plugin nào có thể bỏ /product-category/ và /product/. tks

Nguyễn Quang Cường

có plugin nào có thể thay thế không vậy bạn, mình tìm plugin này nhưng bị xóa rồi hay sao mà không thấy đâu cả, search trên web của wordpress cũng ko có luôn

Thao

Cảm ơn admin
Mình đã làm theo và xóa được phần product, nhưng phần tin tức của trang mình lại bị lỗi 404
Tức là phần tổng hợp tin tức ấy.
Mong admin giúp đỡ

Website của mình: https://minhgo.com
Xin cảm ơn

Thao

Mình test thử bằng cách vào từ mục xem trong backend của Chuyên mục trong cũng vẫn bị lỗi 404
Admin có cao kiến gi ko .Giúp mình với

Thao

Mình hoàn tác lại các bước này thì link bình thường admin ơi.
Mỗi tội nó lại có /san-pham/ trong mục sản phẩm chi tiết và
/product-category/ trong category sản phẩm 🙁

Thao

mình muốn xóa cả 2 và áp dụng 2 cái code trên của admin mà

Thao

OK xin cảm ơn admin

nguyễn mạnh

mình dùng plugin WP htaccess Control thì xóa được remove product-category woocommerce rồi nhưng lại bị lỗi này: Notice: Undefined index: category in D:xampphtdocstheme_wordpresswp-contentpluginswp-htaccess-controlwp-htaccess-control.php on line 589 nhưng ko dung plugin này thì ko sao
ko biet phải sửa ntn nữa ?

nguyễn mạnh

mình đang cài trên localhost bạn ah 🙂