Hướng dẫn xóa bỏ slug không cần thiết trên URL

Slug là một trong những yếu tố cần tối ưu để chuẩn SEO, slug là yếu tố nằm phía sau của tên miền nằm ở URLs của website. Tuy nhiên trong hệ thống wordpress sẽ có những slug như san-pham, danh-muc,… Nếu bạn muốn cách xóa bỏ những slug không cần thiết thì hãy làm theo hướng dẫn này nhé.

Code xóa bỏ slug danh-muc và san-pham trên URL

Đoạn code dưới đây sẽ giúp bạn loại bỏ slug danh-muc, bạn hãy copy đoạn code này vào file Function.php của giao diện và lưu lại.

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 = ‘danh-muc’; //Thay bằng slug hiện tại của bạn
if(strpos($url, $taxonomy_slug) === FALSE) break;
$url = str_replace(‘/’ . $taxonomy_slug, ”, $url);
break;
endswitch;
return $url;
}
// Add our custom product cat rewrite rules
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’);
/*Sửa lỗi khi tạo mới taxomony bị 404*/
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);
}

Đoạn code giúp xóa bỏ slug san-pham trong trang sản phẩm chi tiết, bạn hãy copy đoạn code này vào file Function.php của giao diện và lưu file lại.

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 san-pham 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’);
}
}
}
}
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’);

Xóa slug category bằng Yoast SEO

Nếu website của bạn được cài đặt sẵn công cụ Yoast SEO phiên bản mới bạn làm như sau:

Truy cập vào trang Admin -> chọn SEO -> Hiển thị khi tìm kiếm -> Nguyên tắc phân loại -> kéo xuống tìm đến phần Đường dẫn danh mục rồi chọn gỡ bỏ sau đó nhấn Lưu lại là xong

Đối với bản Yoast SEo cũ thì bạn làm như sau Vào SEO -> Advanced -> tab Permalinks -> Change URLs -> chọn Remove tại Strip the category base (usually /category/) from the category URL. -> rồi nhấn Save changes

Bạn đã có thể xóa bỏ những slug không mong muốn xuất hiện trên permalink rồi đấy, nó giúp cho permalink của bạn trông đẹp mắt hơn và tối ưu SEO cho website của bạn. Chúc bạn thành công.

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

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *