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!

4.7/5 - (8 bình chọn)