Code xóa dấu tên file khi upload lên wordpress
Ngày nay rất nhiều bạn đặt tên ảnh / file thường kèm dấu tiếng Việt, để dễ nhớ, dễ đọc. Tuy nhiên, khi đưa lên website, việc tên ảnh có dấu sẽ có vài điểm bất lợi
- URL ảnh có dấu, không tốt cho SEO
- Tên ảnh có dấu, không tối ưu cho việc tìm kiếm trên wordpress
- Có thể gây lỗi mất ảnh khi tiến hành backup, di chuyển website giữa các hosting/vps
Để khắc phục việc này, mình xin chia sẻ code xử lý cái dấu này tự động khi bạn upload ảnh/file lên wordpress.
Bạn up code này vào functions.php của theme đang dùng nhé
/**
* Produces cleaner filenames for uploads
*/
function ttv_sanitize_file_name( $filename ) {
$sanitized_filename = remove_accents( $filename ); // Convert to ASCII
// Standard replacements
$invalid = array(
' ' => '-',
'%20' => '-',
'_' => '-',
);
$sanitized_filename = str_replace( array_keys( $invalid ), array_values( $invalid ), $sanitized_filename );
$sanitized_filename = preg_replace('/[^A-Za-z0-9-\. ]/', '', $sanitized_filename); // Remove all non-alphanumeric except .
$sanitized_filename = preg_replace('/\.(?=.*\.)/', '', $sanitized_filename); // Remove all but last .
$sanitized_filename = preg_replace('/-+/', '-', $sanitized_filename); // Replace any more than one - in a row
$sanitized_filename = str_replace('-.', '.', $sanitized_filename); // Remove last - if at the end
$sanitized_filename = strtolower( $sanitized_filename ); // Lowercase
return $sanitized_filename;
}
add_filter( 'sanitize_file_name', 'ttv_sanitize_file_name', 10, 1 );
Lưu ý: Đây là xử lý tự động khi bạn sắp up lên, còn những ảnh/file đã up lên thì chúng ta cần tìm tool khác nhé.
Chúc các bạn seo tốt!