Xóa bỏ /category/ và slug category cha khỏi đường dẫn category

12/10/2018 Việt Hải Thủ Thuật Wordpress 992 view

Trong bài viết này chúng ta cùng nhau xóa bỏ /category/ và slug của category cha ra khỏi đường dẫn của category. Nếu bạn chỉ muốn xóa bỏ /category/ thì có thể dùng Yoast Seo để thực hiện việc này (Có hướng dẫn ở cuối bài). Còn bạn muốn xóa bỏ cả 2 thì hãy dùng đoạn code bên dưới. Khi đã dùng đoạn code bên dưới thì bạn không cần bất cứ plugin nào khác vaf không cần thực hiện tthêm thao tác nào khác nha ?

Code xóa bỏ /category/ và slug category cha không dùng plugin

Việc bạn cần làm là copy đoạn code bên dưới vào file functions.php trong theme đang sử dụng sau đó vào update lại permalink tại (Settings -> Permalink -> Save change)

// 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');

Trong quá trình sử dụng có bất kỳ lỗi gì hãy để lại phản hồi bên dưới mình sẽ giải đáp nha.

Hướng dẫn cách chỉ xóa bỏ /category/ bằng plugin Yoast SEO

Yêu cầu bắt buộc là bạn phải cài plugin Yoast SEO . Khi cài mới các cài đặt nâng cao sẽ bị ẩn đi. Vì vậy bạn cần vào mở nó lên bằng cách sau:

Bước 1: vào wp admin  SEO -> tab Features -> Chọn Enabled mục Advanced settings pages -> Save changes

Bước 2:

Bản mới: Vào SEO -> Hiển thị khi tìm kiếm -> Nguyên tắc phân loại -> Tìm đến mục đường dẫn danh mục và chọn gỡ bỏ

Bản cũ : Vào SEO -> Advanced -> tab Permalinks -> Change URLs -> chọn Remove tại Strip the category base (usually /category/) from the category URL. -> Save changes

xóa category bằng Yoast SEO

Xóa category bằng Yoast SEO

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

bài viết thuộc sở hữu của Lê Văn Toản