Trang chủ » WordPress » Thủ thuật wordpress » Hướng dẫn xóa taxonomy base slug trên wordpress

Hướng dẫn xóa taxonomy base slug trên wordpress

Bởi administrator | 179

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

Hãy like nếu bạn thấy hữu ích

Mọi thắc mắc xin vui lòng bình luận dưới đây :

Hãy bình luận nếu có bất cứ thắc mắc gì

avatar
Bài viết liên quan