Xóa bỏ link /san-pham/ trong URL sản phẩm Woocommerce chi tiết!

  • Last update: 31/08/2021

Nguyễn Lê Hoài Thương

Chuyên Gia Digital Marketing

Xóa bỏ link /san-pham/ trong URL sản phẩm Woocommerce chi tiết! hình ảnh 1

Đường dẫn (Permalink) trong WooCommerce sẽ mặc định thêm product-category (danh mục sản phẩm) và product (sản phẩm) – để phân biệt đường dẫn giữa chuyên mục của bài viết và các bài viết.

Prodima không khuyến khích người dùng xóa bỏ link /san-pham/ trong url sản phẩm Woocommerce, vì có thể xảy ra sự trùng lặp giữa các đường dẫn này. Nhưng nếu bạn muốn loại bỏ chúng để tối ưu URL thân thiện hơn với Google thì hãy tham khảo chỉ dẫn của Prodima trong bài viết này nhé!

Cách xóa bỏ link /san-pham/ trong URL sản phẩm WooCommerce

xóa bỏ link /san-pham/ trong URL sản phẩm Woocommerce
Giao diện cài đặt permalinks trong Woocommerce

Để xóa link /san-pham/ trong url, bạn cần mở file functions.php trong giao diện (theme) đang sử dụng. Nếu trường hợp bạn dùng child theme, chỉ cần chèn thêm functions.php là được.

Sau đó, bạn sẽ chèn file functions.php vào đoạn code dưới đây:

/**

* Register a custom post type

*/

$args = array(

‘description’ => ‘Chi tiết sản phẩm’,

‘label’ => __(‘Sản phẩm’),

‘public’ => true,

‘rewrite’ => array( ‘slug’ => ‘/’),

);

register_post_type( ‘product’ , $args );

/**

* Remove the slug from published post permalinks.

*/

function custom_remove_cpt_slug( $post_link, $post, $leavename ) {

if ( ‘product’ != $post->post_type || ‘publish’ != $post->post_status ) {

return $post_link;

}

$post_link = str_replace( ‘/’ . $post->post_type . ‘/’, ‘/’, $post_link );

return $post_link;

}

add_filter( ‘post_type_link’, ‘custom_remove_cpt_slug’, 10, 3 );

/**

* Some hackery to have WordPress match postname to any of our public post types

* All of our public post types can have /post-name/ as the slug, so they better be unique across all posts

* Typically core only accounts for posts and pages where the slug is /post-name/

*/

function custom_parse_request_tricksy( $query ) {

// Only noop the main query

if ( ! $query->is_main_query() )

return;

// Only noop our very specific rewrite rule match

if ( 2 != count( $query->query ) || ! isset( $query->query[‘page’] ) ) {

return;

}

// ‘name’ will be set if post permalinks are just post_name, otherwise the page rule will match

if ( ! empty( $query->query[‘name’] ) ) {

$query->set( ‘post_type’, array( ‘post’, ‘product’, ‘page’ ) );

}

}

add_action( ‘pre_get_posts’, ‘custom_parse_request_tricksy’ );

Để tránh lỗi 404 giúp link sản phẩm có thể hoạt động tốt thì bạn cần vào mục Cài đặt (Settings) => chọn Đường dẫn tĩnh (Permalink) => nhấn ấn Lưu thay đổi (Save) là hoàn tất.

Lưu ý: Sau khi sử dụng đoạn code trên thì đường link /san-pham/ trong URL sẽ được xóa bỏ hoàn toàn, nhưng vô tình sẽ mất đi 2 lựa chọn khác là Orders (Đơn hàng) và Coupons (Các ưu đãi).

  • Đối với mục Orders thì bạn vẫn có thể nhận thông báo về các đơn hàng qua email đã đăng ký mà không cần vào quản trị Woocommerce để xem => cũng không ảnh hưởng gì nhiều.
  • Đối với Coupons rất ít khi sử dụng, nếu bạn muốn tạo các Coupon (Mã giảm giá) => mở lại file functions.php => xóa đoạn code trên để tạo mã giảm giá => nhớ thêm đoạn code đó rồi lưu lại nhé.

Với cách xóa bỏ link /san-pham/ trong URL sản phẩm Woocommerce khá đơn giản đúng không? Trong phần tiếp theo, Prodima sẽ hướng dẫn cho bạn cách xóa link /product-category/ chi tiết nhé!

Cách xóa bỏ link /product-category/ trong URL Woocommerce

Sau khi cài đặt Woocommerce thì mặc định đường URL product-category (danh mục sản phẩm) sẽ có dạng như: prodima.vn/product-category/tai-nghe-bluetooth hoặc prodima.vn/danh-muc-san-pham/tai-nghe-bluetooth (khi Woocommerce của bạn được Việt hóa).

Nếu bạn muốn thay đổi URL chuyển sang prodima.vn/tai-nghe-bluetooth để hỗ trợ cho quá trình làm SEO tốt hơn thì có thể áp dụng theo 2 cách sau:

Cách 1: Xóa bỏ link /product-category/ trong URL bằng plugin

Cách làm này sẽ phù hợp với những bạn không có kiến thức về code. Đầu tiên, bạn cần cài đặt plugin WP htaccess Control vào trang web.

Nếu website của bạn chuyên về bán hàng trực tuyến thì hãy mua thêm plugin Woocommerce SEO để dễ dàng xóa link product-category và còn giúp bạn tối ưu SEO web tốt hơn.

Sau khi hoàn tất cài đặt, bạn nhấp vào mục Settings => chọn htaccess Control để truy cập plugin WP htaccess Control. Tại đây, bạn chọn Remove Taxonomies and Author Base để mở rộng phần cài đặt => chọn Remove Product Categories Base để loại bỏ link product-category trong woocommerce => di chuột xuống dưới và nhấn Save all changes là xong.

Cách 2: Xóa bỏ link /product-category/ trong URL không dùng plugin

Nếu bạn hiểu cơ bản về code thì có thể áp dụng cách này, chỉ cần thêm đoạn code dưới đây vào file functions.php trong theme đang sử dụng. Tiếp tục truy cập vào Cài đặt (Setting) => chọn Đường dẫn tĩnh (Permalink) => nhấn Lưu thay đổi (Save change) 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 ý: Bạn cần kiểm tra lại slug “product-category” ở dòng 6 bằng cách vào Cài đặt => Đường dẫn tĩnh, nếu link hiển thị khác thì bạn có thể sửa lại thành slug hiện tại của trang web.

Nếu làm xong gặp lỗi phân trang (/page/2 – 404 not found), có nghĩa phần permalink của posts đang hiển thị dưới dạng .html. Bạn cần thay đổi code của dòng 25 và 26 như sau:

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’);

Xóa bỏ link /san-pham/ trong URL sản phẩm Woocommerce chi tiết! hình ảnh 2
Xóa link /product-category/ trong Woocommerce

Prodima đã chia sẻ cho bạn thêm 2 cách xóa bỏ link /product-category/ trong URL khá dễ dàng đúng không nào? Bắt tay vào thực hiện ngay nhé.

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

Nếu bạn thích bài viết này, chắc hẳn bạn sẽ thích thú với dịch vụ thiết kế website của chúng tôi. Prodima là đội ngũ chuyên gia về Digital Marketing tại TP. Hồ Chí Minh. Chúng tôi có thể mang đến cho bạn những chiến lược xuất sắc để giúp bạn bứt phá lượng truy cập và tăng doanh thu một cách bền vững. Liên hệ ngay với các chuyên gia của chúng tôi để được tư vấn ngay bây giờ với sự hỗ trợ tận tình 24/7.