2017-01-31 2 views
0

Я попробовал включая следующие 2 фрагментов в functions.phpЗаменить не-ASCII символы на изображении загрузить Wordpress

add_filter('sanitize_file_name', 'remove_accents'); 

и

add_filter('sanitize_file_name', 'sa_sanitize_spanish_chars', 10); 
function sa_sanitize_spanish_chars ($filename) { 
return remove_accents($filename); 
} 

При загрузке изображения он должен заменить французские символы, такие как " é "со стандартными символами ASCII, такими как" e ". Но это не работает.

Я попытался вставить код в 2 разных WP-установки (3.8 и 4.6), но безрезультатно.

Весь смысл замены символов заключается в том, что Safari не может читать URL-адреса с не-ASCII-символами в нем.

+0

Если у вас есть ответ, создайте для него ответ. Ответы теряются, когда они редактируют вопросы. – demongolem

+0

хороший момент, переместил его в раздел ответов –

ответ

0

Решение по Микаэль Gris был следующий код, который работал на 4.6 и 3.8, а также, чтобы убедиться:

функция wpc_sanitize_french_chars ($ файла) {

/* Force the file name in UTF-8 (encoding Windows/OS X/Linux) */ 
$filemane = mb_convert_encoding($filename, "UTF-8"); 

$char_not_clean = array('/À/','/Á/','/Â/','/Ã/','/Ä/','/Å/','/Ç/','/È/','/É/','/Ê/','/Ë/','/Ì/','/Í/','/Î/','/Ï/','/Ò/','/Ó/','/Ô/','/Õ/','/Ö/','/Ù/','/Ú/','/Û/','/Ü/','/Ý/','/à/','/á/','/â/','/ã/','/ä/','/å/','/ç/','/è/','/é/','/ê/','/ë/','/ì/','/í/','/î/','/ï/','/ð/','/ò/','/ó/','/ô/','/õ/','/ö/','/ù/','/ú/','/û/','/ü/','/ý/','/ÿ/', '/©/'); 
$clean = array('a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','u','u','u','u','y','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','o','u','u','u','u','y','y','copy'); 

$friendly_filename = preg_replace($char_not_clean, $clean, $filename); 


/* After replacement, we destroy the last residues */ 
$friendly_filename = utf8_decode($friendly_filename); 
$friendly_filename = preg_replace('/\?/', '', $friendly_filename); 


/* Lowercase */ 
$friendly_filename = strtolower($friendly_filename); 

return $friendly_filename; 

} add_filter ('sanitize_file_name ',' wpc_sanitize_french_chars ', 10);