Hi các bạn ! Mỗi 1 lần mình làm cho khách lại gặp phải 1 vấn đề khách cần chỉnh sửa link cho wordpress. Khách hàng muốn xóa taxonomy slug mặc định . Mình cũng mày mò search search và search cuối cùng tìm ra 1 cách khá là đơn giản . Hôm nay mình xin hướng dẫn loại bỏ slug taxonomy đơn giản cho wordpress không cần sử dụng plugin
add_filter("request", "wprl_change_term_request", 1, 1); function wprl_change_term_request($query) { $tax_name = "product_category"; if (isset($query["attachment"])) { $include_children = true; $name = $query["attachment"]; } else { $include_children = false; $name = (isset($query["name"])) ? $query["name"] : null; } $term = get_term_by("slug", $name, $tax_name); if (isset($name) && $term && !is_wp_error($term)) { 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; break; case "post_tag": $query["tag"] = $name; break; default: $query[$tax_name] = $name; } } return $query; } add_filter("term_link", "wprl_term_permalink", 10, 3); function wprl_term_permalink($url, $term, $taxonomy) { $taxonomy_name = "product_category"; $taxonomy_slug = "danh-muc"; if (strpos($url, $taxonomy_slug) === FALSE || $taxonomy != $taxonomy_name) return $url; $url = str_replace("/" . $taxonomy_slug, "", $url); return $url; } add_action("template_redirect", "wprl_old_term_redirect"); function wprl_old_term_redirect() { $taxonomy_name = "product_category"; $taxonomy_slug = "danh-muc"; 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; }
Bạn chú ý khi copy code cho vào function thì chú ý thay đổi 2 giá trị 1 là $taxonomy_name và $taxonomy_slug cho phù hợp với Post Type của bạn .
Có thế là xong thôi ! Quá đơn giản , các bạn làm thử nếu không được cứ comment bên dưới mình sẽ hỗ trợ nhé. Chúc các bạn thành công