Đổi tên file ảnh có dấu thành không dấu tự động khi up lên wordpress

Ảnh là một trong những yếu tố quan trọng khi seo bài viết. Tuy nhiên không phải lúc nào bạn cũng có thời gian xử lý ảnh cho đúng chuẩn đặc biệt là tên file ảnh.

Tên file ảnh có dấu thì sao?

  • Không có giá trị cao trong seo
  • Rất hay bị lỗi ảnh.
  • Rất hay bị mất ảnh do hostting tưởng nhầm là virus.
  • ….

Làm thế nào để đổi tên file ảnh tự động khi up ảnh lên wordpress.

Để tự động đổi tên file ảnh có dầu thành không dấu khi up lên bạn có thể đặt hàm sau tại file functions.php

/* Bỏ dấu tiếng việt */
function toSlug($text){
    //global $ibforums;
    //Charachters must be in ASCII and certain ones aint allowed
    $text = html_entity_decode ($text, ENT_QUOTES, 'UTF-8');
    $text = preg_replace("/(ä|à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ)/", 'a', $text);
    $text = str_replace("ç","c",$text);
    $text = preg_replace("/(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)/", 'e', $text);
    $text = preg_replace("/(ì|í|î|ị|ỉ|ĩ)/", 'i', $text);
    $text = preg_replace("/(ö|ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ)/", 'o', $text);
    $text = preg_replace("/(ü|ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)/", 'u', $text);
    $text = preg_replace("/(ỳ|ý|ỵ|ỷ|ỹ)/", 'y', $text);
    $text = preg_replace("/(đ)/", 'd', $text);
    //CHU HOA
    $text = preg_replace("/(Ä|À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|Ắ|Ặ|Ẳ|Ẵ)/", 'A', $text);
    $text = str_replace("Ç","C",$text);
    $text = preg_replace("/(È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ)/", 'E', $text);
    $text = preg_replace("/(Ì|Í|Ị|Ỉ|Ĩ)/", 'I', $text);
    $text = preg_replace("/(Ö|Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|Ớ|Ợ|Ở|Ỡ)/", 'O', $text);
    $text = preg_replace("/(Ü|Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ)/", 'U', $text);
    $text = preg_replace("/(Ỳ|Ý|Ỵ|Ỷ|Ỹ)/", 'Y', $text);
    $text = preg_replace("/(Đ)/", 'D', $text);
    $text = preg_replace("/[^a-zA-Z0-9\-\.\_]/", ' ', $text);
    $text = str_replace("     ", ' ', $text);
    $text = str_replace("    ", ' ', $text);
    $text = str_replace("   ", ' ', $text);
    $text = str_replace("  ", ' ', $text);
    $text = str_replace(" - ", ' ', trim($text));
    $text = str_replace(" -", ' ', trim($text));
    $text = str_replace("- ", ' ', trim($text));
    $text = str_replace(" ", '-', trim($text));
    return strtolower($text);
}

function wp_modify_uploaded_file_names($filename){
    $charlist = "áàảãạăắặằẳẵâấầẩẫậđéèẻẽẹêếềểễệíìỉĩịóòỏõọôốồổỗộơớờởỡợúùủũụưứừửữựýỳỷỹỵÁÀẢÃẠĂẮẶẰẲẴÂẤẦẨẪẬÉÈẺẼẸÊẾỀỂỄỆÍÌỈĨỊÓÒỎÕỌÔỐỒỔỖỘƠỚỜỞỠỢÚÙỦŨỤƯỨỪỬỮỰÝỲỶỸỴ";
    $info           = pathinfo($filename);
    $random_number  = rand(10000,99999);
    $ext            = empty($info['extension']) ? '' : '.' . $info['extension'];
    $name           = basename($filename, $ext);
    $name           = trim($name,'.');
    $check = addcslashes($name,$charlist);
    if (strcmp ($name ,$check ) !=0) {
      $name         = toSlug($name);
      $name = $name .'-'.$random_number . $ext;
    }else{
      $name = $name.$ext;
    }
    return $name;
}
add_filter('sanitize_file_name', 'wp_modify_uploaded_file_names', 10);

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

Leave a Reply