Xóa base slug khỏi URL category, post tags và custom taxonomy

Quảng cáo
Ads_ngang
Website dinhthuanit.com có bài Xóa base slug khỏi URL category, post tags và custom taxonomy

Trong bài này, mình sẽ chỉ cho bạn cách loại bỏ từ «category» từ URL danh mục trong WordPress.

xóa category slug khỏi URL

làm thế nào để loại bỏ «tag» từ trang thẻ bài viết.

xóa tag từ post_tags URLs.    

và làm làm sao để xóa tên URL slug taxonomy ( «product_cat») từ những URL:

xóa taxonomy slug từ URL.

Sử dụng đoạn mã dưới đây , bạn có thể chèn vào giao diện ngày nay trong file functions.php , và hãy nhớ thay thay tên taxonomy của bạn.

 add_filter('request', 'rudr_change_term_request', 1, 1 ); function rudr_change_term_request($query){ $tax_name = 'product_cat'; // specify you taxonomy name here, it can be also 'category' or 'post_tag' // Request for child terms differs, we should make an additional check if( $query['attachment'] ) : $include_children = true; $name = $query['attachment']; else: $include_children = false; $name = $query['name']; endif; $term = get_term_by('slug', $name, $tax_name); // get the current term to make sure it exists if (isset($name) && $term && !is_wp_error($term)): // check it here if( $include_children ) { unset($query['attachment']); $parent = $term->parent; while( $parent ) { $parent_term = get_term( $parent, $tax_name); $name = $parent_term->slug . '/' . $name; $parent = $parent_term->parent; } } else { unset($query['name']); } switch( $tax_name ): case 'category':{ $query['category_name'] = $name; // for categories break; } case 'post_tag':{ $query['tag'] = $name; // for post tags break; } default:{ $query[$tax_name] = $name; // for another taxonomies break; } endswitch; endif; return $query; } add_filter( 'term_link', 'rudr_term_permalink', 10, 3 ); function rudr_term_permalink( $url, $term, $taxonomy ){ $taxonomy_name = 'product_cat'; // your taxonomy name here $taxonomy_slug = 'product_cat'; // the taxonomy slug can be different with the taxonomy name (like 'post_tag' and 'tag' ) // exit the function if taxonomy slug is not in URL if ( strpos($url, $taxonomy_slug) === FALSE || $taxonomy != $taxonomy_name ) return $url; $url = str_replace('/' . $taxonomy_slug, '', $url); return $url; }  

Lưu ý: sau đó bạn sẽ cần thực hành chuyển hướng 301 cho URL cũ, điều đó là rất cần có để dữ thứ hạng SEO cho trang web của bạn.

 add_action('template_redirect', 'rudr_old_term_redirect'); function rudr_old_term_redirect() { $taxonomy_name = 'product_cat'; $taxonomy_slug = 'product_cat'; // exit the redirect function if taxonomy slug is not in URL if( strpos( $_SERVER['REQUEST_URI'], $taxonomy_slug ) === FALSE) return; if( ( is_category() && $taxonomy_name=='category' ) || ( is_tag() && $taxonomy_name=='post_tag' ) || is_tax( $taxonomy_name ) ) : wp_redirect( site_url( str_replace($taxonomy_slug, '', $_SERVER['REQUEST_URI']) ), 301 ); exit(); endif; }  

Đoạn mã này thậm trí đã được thử nghiệm với dữ liệu taxonomy có phân cấp đa tầng phức tạp và hoạt động khá OK với cấu trúc permalink như hình dưới.

cấu hình permalink 

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên Twitter và Facebook

Bài viết Xóa base slug khỏi URL category, post tags và custom taxonomy được tổng hợp và biên tập bởi: dinhthuanit.com. Mọi ý kiến đóng góp và phản hồi vui lòng gửi Liên Hệ cho dinhthuanit.com để điều chỉnh. dinhthuanit.com xin cảm ơn.

Bài Viết Liên Quan


Bài Viết Khác


Quảng cáo
Ads_ngang