Cách xóa bỏ /category/ trong đường link URL Woocommerce

0
429

Mặc định khi cài đặt WordPress thì trong đường link của chuyên mục (categories) sẽ có chứa đoạn category với dạng như sau: leanhtien.net/product-category/san-pham1. Với đường link như này xét về thẩm mỹ thì nhìn thấy rất rườm rà và rất xấu đúng không nào. Còn xét về SEO thì có thể nói là nó không tốt cho SEO vì nó làm cho đường link dài thêm, nên trong đa số các dự án SEO mình làm đều ưu tiên xóa đường link đó đi.

Bước 1: Vào Cài Đặt > Đường dẫn tĩnh> Thêm dấu chấm (.) vào field “Mặc định danh mục sản phẩm” và field “Tuỳ biến đường dẫn” như trong hình:

xóa slug category woo

Bước 2: Sau đó thêm đoạn code bên dưới vào file function.php:


add_filter('request', function( $vars ) {
global $wpdb;
if( ! empty( $vars['pagename'] ) || ! empty( $vars['category_name'] ) || ! empty( $vars['name'] ) || ! empty( $vars['attachment'] ) ) {
$slug = ! empty( $vars['pagename'] ) ? $vars['pagename'] : ( ! empty( $vars['name'] ) ? $vars['name'] : ( !empty( $vars['category_name'] ) ? $vars['category_name'] : $vars['attachment'] ) );
$exists = $wpdb->get_var( $wpdb->prepare( "SELECT t.term_id FROM $wpdb->terms t LEFT JOIN $wpdb->term_taxonomy tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'product_cat' AND t.slug = %s" ,array( $slug )));
if( $exists ){
$old_vars = $vars;
$vars = array('product_cat' => $slug );
if ( !empty( $old_vars['paged'] ) || !empty( $old_vars['page'] ) )
$vars['paged'] = ! empty( $old_vars['paged'] ) ? $old_vars['paged'] : $old_vars['page'];
if ( !empty( $old_vars['orderby'] ) )
$vars['orderby'] = $old_vars['orderby'];
if ( !empty( $old_vars['order'] ) )
$vars['order'] = $old_vars['order'];
}
}
return $vars;
});