Bardzo często przy migracji witryny występuje problem z nazwami plików, a dokładniej z kodowaniem polskich znaków diakrytycznych. Jeżeli szukasz jak masowo zamienić już istniejące pliki, to muszę cię rozczarować, ten wpis nie jest o tym. Ten wpis jest o tym, jak nie dopuścić do takiej sytuacji, czyli zgodnie z zasadą, że lepiej jest zapobiegać, niż leczyć.
Dla mnie, ten kawałek kodu jest czymś co zawsze instaluje na wszystkich WordPressach, w których mam prawo to zrobić.
add_action( 'sanitize_file_name', 'iworks_sanitize_file_name' ); if ( ! function_exists( 'iworks_sanitize_file_name' ) ) { function iworks_sanitize_file_name( $filename ) { $de_from = array( 'ä','ö','ü','ß','Ä','Ö','Ü' ); $de_to = array( 'ae','oe','ue','ss','Ae','Oe','Ue' ); $filename = str_replace( $de_from, $de_to, $filename ); $pl_from = array( 'ą', 'ć', 'ę', 'ł', 'ń', 'ó', 'ś', 'ź', 'ż', 'Ą', 'Ć', 'Ę', 'Ł', 'Ń', 'Ó', 'Ś', 'Ź', 'Ż' ); $pl_to = array( 'a', 'c', 'e', 'l', 'n', 'o', 's', 'z', 'z', 'A', 'C', 'E', 'L', 'N', 'O', 'S', 'Z', 'Z' ); $filename = str_replace( $pl_from, $pl_to, $filename ); $filename = preg_replace( '/[^A-Za-z0-9\._]/', '-', $filename ); $filename = preg_replace( '/[_ ]+/', '-', $filename ); $filename = preg_replace( '/%20/', '-', $filename ); return $filename; } } |
Kod do pobrania
Gotowy kod w formie wtyczki, możesz pobrać poniżej.
[zip href="http://iworks.pl/wp-content/uploads/2017/03/iworks-clear-file-name.php-.zip"]iworks_clear_file_name.php[/zip]Jak użyć podany kod?
Masz 3 rozwiązania:
- wrzuć załączony plik do folderu
wp-content/plugins
, a potem włącz wtyczkę - wrzuć załączony plik do folderu
wp-content/mu-plugins
- dołącz kod do pliku
functions.php
aktualnie używanego motywu
Aktualizacja: 2017-03-02 09:00
Jak słusznie zasugerował w komentrzu Sebastian jest wtyczka, która obsługuje wszystko co można sobie zażyczyć: Filenames to latin i ląduje ona w moich mu-wtyczkach na stałe.
Sebastian
Ja instaluje wtyczkę Filenames to latin na każdym wp
Marcin Pietrzak
I słusznie. Ten mój kod ma już kilka lat, jakoś tak zalegał w oczekiwaniu publikacji.