• Trang chủ
  • WordPress
    • Thủ thuật WordPress
    • WordPress Plugins
    • WordPress Themes
  • Hosting và Domain
  • Kiếm tiền online
  • Đánh giá
  • Khuyến mãi
  • Thông báo
wpcb-logo

WP Căn bản

Kiến thức căn bản cho người dùng WordPress

paradise-child-theme-wordpress-theme-tot-nhat
  • Dịch vụ WordPress Hosting
  • Dịch vụ tối ưu WordPress
  • Dịch vụ quét mã độc WordPress
  • Mua Paradise child theme
Trang chủ » WordPress » Thủ thuật WordPress » Loại bỏ chữ product và product-category trong WooCommerce
hosting-tot-nhat-danh-cho-wordpress

Loại bỏ chữ product và product-category trong WooCommerce

Cập nhật: 07/04/2023 Trung Hiếu 39 Bình luận

Mục lục Hiện
  • 1. Loại bỏ chữ product và product-category bằng code
  • 2. Loại bỏ chữ product và product-category bằng plugin

Loại bỏ chữ product và product-category trong đường dẫn của WooCommerce một cách đơn giản.

loai-bo-chu-product-va-product-category-trong-duong-dan-cua-woocommerce

Theo mặc định, trong đường dẫn (permalink) của WooCommerce sẽ có thêm chữ product (sản phẩm) và product-category (danh mục sản phẩm). Điều này giúp phân biệt với đường dẫn của bài viết hay các chuyên mục của bài viết. WooCommerce không khuyến khích việc loại bỏ những chữ này để tránh lỗi trùng lặp hay xung đột đường dẫn giữa bài viết thông thường và sản phẩm. Tuy nhiên, nhiều bạn vẫn muốn loại bỏ chúng để đường dẫn của sản phẩm ngắn gọn hơn, thân thiện với công cụ tìm kiếm hơn.

Tham khảo thêm:

  • Loại bỏ chữ category trong đường dẫn của WordPress
  • Cấu trúc permalink nào tốt nhất dành cho WordPress?

Loại bỏ chữ product và product-category bằng code

Phương pháp này không nên dùng, nguyên nhân sẽ được giải thích ở bên dưới.

Có nhiều phương pháp khác nhau để làm điều này, cả plugin lẫn code snippets. Tôi thấy một số trang đang chia sẻ code snippets giúp tùy biến đường dẫn của WooCommerce mà không cần dùng plugin. Cụ thể ở đây là code:

/*
* Code Bỏ /product/ hoặc /cua-hang/ hoặc /shop/ ... có hỗ trợ dạng %product_cat%
* Thay /cua-hang/ bằng slug hiện tại của bạn
*/
function devvn_remove_slug( $post_link, $post ) {
    if ( !in_array( get_post_type($post), array( 'product' ) ) || 'publish' != $post->post_status ) {
        return $post_link;
    }
    if('product' == $post->post_type){
        $post_link = str_replace( '/san-pham/', '/', $post_link ); //Thay cua-hang bằng slug hiện tại của bạn
    }else{
        $post_link = str_replace( '/' . $post->post_type . '/', '/', $post_link );
    }
    return $post_link;
}
add_filter( 'post_type_link', 'devvn_remove_slug', 10, 2 );
/*Sửa lỗi 404 sau khi đã remove slug product hoặc cua-hang*/
function devvn_woo_product_rewrite_rules($flash = false) {
    global $wp_post_types, $wpdb;
    $siteLink = esc_url(home_url('/'));
    foreach ($wp_post_types as $type=>$custom_post) {
        if($type == 'product'){
            if ($custom_post->_builtin == false) {
                $querystr = "SELECT {$wpdb->posts}.post_name, {$wpdb->posts}.ID
                            FROM {$wpdb->posts} 
                            WHERE {$wpdb->posts}.post_status = 'publish' 
                            AND {$wpdb->posts}.post_type = '{$type}'";
                $posts = $wpdb->get_results($querystr, OBJECT);
                foreach ($posts as $post) {
                    $current_slug = get_permalink($post->ID);
                    $base_product = str_replace($siteLink,'',$current_slug);
                    add_rewrite_rule($base_product.'?$', "index.php?{$custom_post->query_var}={$post->post_name}", 'top');                    
                    add_rewrite_rule($base_product.'comment-page-([0-9]{1,})/?$', 'index.php?'.$custom_post->query_var.'='.$post->post_name.'&cpage=$matches[1]', 'top');
                    add_rewrite_rule($base_product.'(?:feed/)?(feed|rdf|rss|rss2|atom)/?$', 'index.php?'.$custom_post->query_var.'='.$post->post_name.'&feed=$matches[1]','top');
                }
            }
        }
    }
    if ($flash == true)
        flush_rewrite_rules(false);
}
add_action('init', 'devvn_woo_product_rewrite_rules');
/*Fix lỗi khi tạo sản phẩm mới bị 404*/
function devvn_woo_new_product_post_save($post_id){
    global $wp_post_types;
    $post_type = get_post_type($post_id);
    foreach ($wp_post_types as $type=>$custom_post) {
        if ($custom_post->_builtin == false && $type == $post_type) {
            devvn_woo_product_rewrite_rules(true);
        }
    }
}
add_action('wp_insert_post', 'devvn_woo_new_product_post_save');
// 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');

Tuy nhiên, trên thực tế những code này không tối ưu (cũng không được cập nhật thường xuyên) nên gây ảnh hưởng nghiêm trọng đến hiệu suất của website. Cụ thể, chúng có thể làm CPU và RAM của host bị quá tải, dẫn đến website load rất chậm, thậm chí bị lỗi 503 (quá tải). Tôi đã từng ghi nhận tình trạng này trên website của một số khách hàng. Các bạn tuyệt đối không nên sử dụng chúng.

Trong bài viết này, tôi sẽ giới thiệu cho các bạn cách đơn giản mà hiệu quả nhất, ít gây ảnh hưởng tới hiệu suất hoạt động của website.

Loại bỏ chữ product và product-category bằng plugin

Nếu bạn đang là khách hàng của WP Căn bản, chúng tôi khuyên dùng plugin WPCB Permalinks Manager do chính WP Căn bản phát triển, vì những ưu điểm vượt trội của nó. Tham khảo bài viết “Xóa base slug của custom post type và taxonomy” để biết thêm chi tiết.

1. Đầu tiên, các bạn cần phải cài đặt và kích hoạt một plugin có tên là Premmerce WooCommerce Permalink Manager Pro (download).

cai-dat-va-kich-hoat-plugin-premmerce-woocommerce-permalink-manager-pro

2. Tiếp theo, click vào nút Allow & Continue. Các bạn cũng có thể click nút Skip để bỏ qua.

click-vao-nut-allow-and-continue

3. Giao diện thiết lập của plugin sẽ trông giống như thế này. Hãy lựa chọn dạng cấu trúc đường dẫn phù hợp với nhu cầu của bạn.

woocommerce-permalink-settings

Trong đó:

  • Use WooCommerce settings: sử dụng thiết lập permalink của WooCommerce. Thiết lập này các bạn có thể tùy biến tại Settings => Permalinks. Nó nằm ngay bên dưới phần thiết lập permalink của WordPress.
  • Category slug: sử dụng đường dẫn danh mục sản phẩm kiểu tenmien.com/ten-danh-muc-san-pham.
  • Product slug: sử dụng đường dẫn sản phẩm kiểu tenmien.com/ten-san-pham.
  • Full category path: sử dụng đường dẫn danh mục sản phẩm kiểu tenmien.com/ten-danh-muc-me/ten-danh-muc-con.
  • Product slug with primary category: sử dụng đường dẫn sản phẩm kiểu tenmien.com/ten-danh-muc-san-pham/ten-san-pham.
  • Full product path: sử dụng đường dẫn sản phẩm kiểu tenmien.com/ten-danh-muc-me/ten-danh-muc-con/ten-san-pham.

Tick vào các mục Use primary category và Add canonicals để tăng khả năng tương thích cho plugin. Cuối cùng, click vào nút Save Changes để lưu lại.

4. Xóa cache website (nếu bạn có sử dụng plugin tạo cache) và kiểm tra kết quả. Thật đơn giản phải không nào? Chúc các bạn thành công!

Bạn biết phương pháp khác đơn giản và hiệu quả hơn để loại bỏ chữ product, product-category ra khỏi đường dẫn của WooCommerce? Đừng quên chia sẻ nó với chúng tôi trong khung bình luận bên dưới.

Nếu bạn thích bài viết này, hãy theo dõi blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất nhé. Cảm ơn rất nhiều. :)

Đang tải đánh giá...
  • Facebook
  • Twitter (X)
  • LinkedIn
  • Pinterest
  • Tumblr
  • Zalo

Bài viết liên quan

Hiển thị đánh giá 5 sao trên Google một cách đơn giản
Hiển thị đánh giá 5 sao trên Google một cách đơn giản
Tích hợp mã QR ngân hàng cho WooCommerce
Tích hợp mã QR ngân hàng cho WooCommerce
Xóa base slug của custom post type và taxonomy
Xóa base slug của custom post type và taxonomy

Chuyên mục: Thủ thuật WordPress Thẻ: Thủ thuật SEO/ WooCommerce/ WordPress Permalinks

wpcanban-com-facebook-group

Nói về Trung Hiếu

Một người con của xứ Nghệ, hiện đang sinh sống tại Hà Nội. Tôi là người sáng lập và đứng sau mọi hoạt động của WP Căn bản. Tìm hiểu thêm về tôi tại đây.

Bài viết trước « Easy WP SMTP dính lỗi bảo mật nghiêm trọng, update ngay
Bài viết sau Kiếm tiền với quảng cáo đẩy DatsPush thật đơn giản »

Reader Interactions

Bình luận

    Để lại một bình luận Hủy

    Tất cả các bình luận đều sẽ được kiểm duyệt nghiêm ngặt. Mọi bình luận trái quy định sử dụng sẽ bị gỡ bỏ link hoặc xóa bỏ hoàn toàn. Vui lòng đọc kỹ quy định trước khi bình luận. Xin cảm ơn!

  1. Pham Hai 4 bình luậnviết

    07/12/2019 lúc 11:28

    Cho mình hỏi, trong trường hợp sử dụng plugin như trên bạn giới thiệu thì khi index vào webmaster tool có nhận diện link đã thay đổi hay không?
    Vì hiện tại tôi sử dụng code để xóa đường dẫn thư mục xong khi index một số công cụ nó vẫn nhận đường dẫn có link thư mục?

    Bình luận
    • Trung Hiếu Quản lýviết

      07/12/2019 lúc 16:44

      Nó sẽ cập nhật dần dần thôi bạn. Redirect nên không phải lo nhé.

      Bình luận
  2. Minh Hiếu 73 bình luậnviết

    02/12/2019 lúc 20:04

    Em thấy nếu làm TMĐT thì một lúc nào đó cũng chạy Google Ads, mà Google Ads cho TMĐT thì thế nào cũng chạy dynamic, mà dymanic thì nên có cái khúc product hay san-pham sẽ dễ hơn cho người làm quảng cáo ấy chứ. Em nghĩ là nên sửa thành san-pham chứ không nên bỏ a Hiếu ạ :D

    Bình luận
    • Trung Hiếu Quản lýviết

      02/12/2019 lúc 20:27

      Là nhiều người thích bỏ thôi, chứ WooCommerce không khuyến khích bỏ vì dễ gây xung đột. :P

      Bình luận
  3. Lê Trung Thành 5 bình luậnviết

    29/11/2019 lúc 03:19

    Bác Trung Hiếu cho hỏi dùng cái này có ảnh hưởng SEO không bác? vì web hoạt động rồi.

    Bình luận
    • Trung Hiếu Quản lýviết

      29/11/2019 lúc 07:43

      Không bạn nhé. Nó tự redirect từ link cũ sang link mới.

      Bình luận
  4. Tran Loc 2 bình luậnviết

    18/10/2019 lúc 11:16

    theo mình thì không nên sử dụng code để sửa vì dễ gây ra lỗi
    dùng plugin thì dễ sử dụng hơn
    là cá nhân mình thì sẽ ưu tiên sử dụng plugin

    Bình luận
    • Pham Hai 4 bình luậnviết

      10/12/2019 lúc 10:06

      Hiện tại web của tớ sử dụng code để xóa link thư mục vẫn chưa thấy lỗi gì. Xong đôi khi vào link cũ nó vẫn nhận. Không biết plugin khi thêm vào có ảnh hưởng đến tốc độ web không?

      Bình luận
  5. Phi 7 bình luậnviết

    03/10/2019 lúc 15:42

    Mình dùng code snippets trên đường dẫn thì mất rồi mà sao trên breadcrumbs vẫn còn nhỉ.

    Bình luận
    • Trung Hiếu Quản lýviết

      04/10/2019 lúc 10:12

      Cái này là code loại bỏ trong đường dẫn chứ có phải loại bỏ trong breadcrumb đâu bạn. Nội dung hiển thị trên breadcrumb được cấu hình thông qua theme hoặc các plugin hỗ trợ SEO như Yoast SEO mà.

      Bình luận
      • Phi 7 bình luậnviết

        04/10/2019 lúc 10:58

        Vậy muốn bỏ cả breadcrumbs phải sửa trong plugin/theme hả anh Hiếu

        Bình luận
        • Chợ Lưới 10 bình luậnviết

          04/10/2019 lúc 11:34

          Mình nghĩ là chỉ còn cách tự code lại cái breadcrumbs thôi. Vì giải pháp ở trên chỉ là rewrite lại url chứ ko phải tận gốc vấn đề (đoán thế)

          Bình luận
          • Phi 7 bình luậnviết

            04/10/2019 lúc 11:44

            Mình mới bỏ được rồi, mình dùng them Jnews, cái breadcrumbs nó nằm trong plugins JNews – Breadcrumb đi kèm, mình vào trong code nó tìm chữ category rồi xóa nó đi là nó mất luôn

            Bình luận
  6. buiduchanh 4 bình luậnviết

    08/08/2019 lúc 15:04

    Mình thấy nó cũng không cần thiết nếu không phân tầng nhiều lớp

    Bình luận
  7. Tuan 6 bình luậnviết

    03/08/2019 lúc 14:59

    Sao phức tạp thể nhỉ @@ dù sao cũng cảm ơn ad :D

    Bình luận
  8. TÙng 45 bình luậnviết

    12/07/2019 lúc 12:37

    hay quá, đúng cái em cần, tks nhiều

    Bình luận
  9. Cổng dò kim loại 4 bình luậnviết

    10/07/2019 lúc 15:26

    Mình nghĩ rút gọn cũng tốt, đối với những trang web phân danh mục sâu thì nên rút ngắn để tối ưu seo. làm danh mục 2 tầng thì bỏ qua cũng k sao :D

    Bình luận
  10. Phan Văn Trọng 2 bình luậnviết

    10/07/2019 lúc 10:50

    Có cách nào loại bỏ rel=”noopener noreferrer” trên wordpress 5. không bạn!
    Mình đã thử một số cách rồi mà không được?

    Bình luận
    • Trung Hiếu Quản lýviết

      10/07/2019 lúc 11:58

      Bỏ làm chi vậy bạn? Ảnh hưởng gì đến SEO đâu. Nó là 1 thẻ hỗ trợ bảo mật thôi mà. :P

      Bình luận
« 1 2 3 »

Sidebar chính

Người sáng lập

avatar-tac-gia
Blogger - Developer - Freelancer

Tôi tên là Bùi Trung Hiếu, sinh ra ở một làng quê nghèo thuộc tỉnh Nghệ An. Hiện tại, tôi đang sinh sống và làm việc tại Hà Nội. Với niềm đam mê công nghệ thông tin mãnh liệt, đặc biệt là WordPress, tôi đã tự tìm tòi, nghiên cứu về chúng trong suốt nhiều năm qua.

Xem thêm về tôi

Theo dõi qua mạng xã hội

Dịch vụ tối ưu WordPress miễn phí

dich-vu-toi-uu-wordpress-mien-phi

Plugin độc quyền miễn phí

  • WPCB Central Panel
  • WPCB Secure Shield
  • WPCB Hybrid Cache Manager
  • WPCB AI Optimization
  • WPCB Simple Ratings
  • WPCB Simple AntiSpam
  • WPCB Social Share Buttons
  • WPCB Comment Notifications
  • WPCB Comment User Badge
  • WPCB Top Commenters
  • WPCB Simple SMTP
  • WPCB Simple Contact Form
  • WPCB Permalinks Manager
  • WPCB Syntax Highlighter
  • WPCB Content Protector
  • WPCB Auto Images Alt-Text
  • WPCB Snowfall
  • WPCB Ultimate Search
  • WPCB 404 Auto Redirect
  • WPCB Disable Blog
  • WPCB Simple Lightbox
  • WPCB Auto Expired Transients Cleaner

Dịch vụ quét mã độc miễn phí

dich-vu-quet-ma-doc-wordpress-mien-phi

Bài viết mới nhất

  • Ra mắt plugin WPCB Central Panel độc quyền 08/04/2026
  • Tối ưu website WordPress cho AI một cách đơn giản 24/03/2026
  • Hướng dẫn nâng cấp PHP 8.5 cho website WordPress 09/03/2026
  • Sửa lỗi trắng trang cho XML Sitemaps của Rank Math SEO 02/03/2026
  • Sửa lỗi 404 cho XML Sitemaps của Rank Math SEO 01/02/2026
  • Plugin chống spam siêu nhẹ dành cho WordPress 07/01/2026

Footer

Bình luận mới nhất

  • Trung Hiếu trong Ra mắt plugin WPCB Central Panel độc quyền
  • Tịnh Nguyễn trong Ra mắt plugin WPCB Central Panel độc quyền
  • Trung Hiếu trong Ra mắt plugin WPCB Central Panel độc quyền
  • Tịnh Nguyễn Blog trong Ra mắt plugin WPCB Central Panel độc quyền
  • Trung Hiếu trong Plugin chống spam siêu nhẹ dành cho WordPress

Bình luận nhiều nhất

  1. Tịnh Nguyễn (15)
  2. Ngọc Blue (6)
  3. HN (1)
  4. Blog Công Chứng (1)
  5. Tuấn Digi (1)

Liên kết hữu ích

  • Giới thiệu bản thân
  • Quy định sử dụng
  • Bản quyền nội dung
  • Chính sách bảo mật
  • Liên hệ hỗ trợ

Thống kê WP Căn bản

9 Chuyên mục - 1.020 Bài viết - 35.706 Bình luận

Bản quyền © 2014 - 2026 · WP Căn bản (tiền thân là ebooksvn.com) · Sử dụng Paradise child theme và dịch vụ WordPress Hosting