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.
Để 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
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.
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”
Mình chưa hiểu là sao url danh mục lại có .html nhỉ? Bạn có thể để lại link web để mình xem được không?
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
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
“Để 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 !
Bạn đăng nhập vào trang quản lý hosting và vào mục File Manager. Sau đó tìm vào thư mục public_html/wp-content/themes. Nếu bạn thấy có 1 thư mục thì đó chính là thư mục theme đang được sử dụng. Nếu có nhiều hơn 1 thư mục thì bạn đăng nhập thêm vào trang quản trị web và vào menu Giao diện xem theme nào đang được kích hoạt thì sẽ biết được thư mục nào là theme đang sử dụng.
Dạ, em cảm ơn anh nhiều ạ !
Cho mình hỏi plugin nào có thể bỏ /product-category/ và /product/. tks
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
Plugin này vẫn còn trên khi wordpress bạn nhé. Bạn ko tìm thấy thì có thể tải plugin ở link trong bài về và upload lên web nhé. Không thì bạn có thể dùng code để xóa cũng đc.
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
Bạn thử update lại Premarlink xem sao nhé. Phần này ko ảnh hưởng gì tới cấu trúc của phần tin tức nên ko hẳn là do lỗi này đâu
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
Bạn thử hoàn tác lại các bước xóa /product-category/ rồi xem lại các chuyên mục còn bị lỗi ko
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 🙁
Bạn đang áp dụng theo cách 2 để xóa /product-category/ hả?
mình muốn xóa cả 2 và áp dụng 2 cái code trên của admin mà
Vậy có thể code xóa /san-pham/ đang bị xung đột gì với web của bạn rồi. Để mình xem lại có gì mình sẽ phản hồi lại sau nhé
OK xin cảm ơn admin
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 ?
Bạn đang cài trên localhost phải ko nhỉ. Bạn thử đưa lên hosting rồi hãy cài đặt thử plugin này xem sao nhé. Mình chưa cài trên local nên chưa gặp lỗi này bgio 🙂
mình đang cài trên localhost bạn ah 🙂
Vậy bạn cứ để khi nào up lên hosting thì hãy cài thêm plugin WP htaccess Control để bỏ product-category sau nhé