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 | 1270

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

Leave a Reply

Your email address will not be published. Required fields are marked *

Bài viết liên quan