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 🙂
Nội dung bài viết:
- Code xóa bỏ /category/ và slug category cha không dùng plugin
- Hướng dẫn cách chỉ xóa bỏ /category/ bằng plugin Yoast SEO
Các bài viết có thể bạn quan tâm:
Để duy trì blog nên mình có làm aff cho 1 số bên hosting. Nhưng dù aff mình cũng chọn 1 số nhà cung cấp uy tín về chất lượng và support nên các bạn cứ yên tâm nhé.
Nếu có mua hosting mà có trong list dưới đây các bạn click vào link trước khi mua để ủng hộ mình nhé. Mình cảm ơn nhiều
- Azdigi: Giá rẻ thì dùng gói Pro Gold Hosting còn chất lượng hơn thì em khuyên dùng Business Hosting. Có điều kiện thì lên VPS nhé
- Tino hosting
- iNet
- Nước ngoài thì Vultr
- Xóa bỏ product-category và toàn bộ slug của danh mục cha khỏi đường dẫn của Woocommerce
- Hướng dẫn xóa product, product-category trong đường dẫn của woocommerce
- Cách cài đặt base của danh mục sản phẩm giống với base của trang sản phẩm
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) https://levantoan.com
// 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
Chúc các bạn thành công ^^
- Bình luận