Odezwała się dziś do mnie klientka, że chciała do kursu dodać plik tekstowy (rozszerzenie .txt) i nie może, bo WordPress jej nie pozwala. No nie pozwala, bo WordPress ma określoną listę plików, jakie można do niego wgrać za pomocą biblioteki mediów, i choć dozwolonych formatów plików jest całkiem sporo, to nie ma wśród nich tak podstawowych, jak archiwum ZIP (.zip), archiwum 7-Zip (.7z) czy właśnie zwykłych plików tekstowych (.txt). Na szczęście jak to w WordPressie często bywa – dla chcącego nie ma nic trudnego. Trzeba tylko wiedzieć co i jak…
Niestandardowe typy plików w bibliotece mediów w WordPressie
Jeśli za pomocą biblioteki mediów w WordPressie spróbujemy wgrać plik w formacie, który nie występuje na dozwolonej liście, to otrzymamy np. taki błąd:
Najprostszy sposób, by to obejść, to opisywany m.in. w naszym eBooku „Plik wp-config.php w WordPressie dla początkujących i zaawansowanych”, czyli dodanie odpowiedniej linijki do pliku wp-config.php:
define('ALLOW_UNFILTERED_UPLOADS', true);
Od tego momentu wszystkie pliki będą zapisywane, bo WordPress nie będzie ich filtrował:
Jest to opcja nie tylko szybka do wdrożenia, ale i skuteczna. Jednak jej wadą jest to, że w ten sposób tracimy całkowitą kontrolę nad tym, jakie pliki mogą być dodawane do biblioteki mediów, co może być niebezpieczne. I nawet jeśli muszą zaistnieć dodatkowe czynniki, by wynikło z tego realne zagrożenie dla kogokolwiek, to jest to opcja, której raczej nie korzystam. Chyba że w środowisku testowym…
I w tym momencie z pomocą przychodzi filtr „upload_mimes”, dzięki któremu możemy nie tylko dodać wybrane przez nas typy plików do listy dozwolonych, ale też usunąć z niej jakieś, jeśli zajdzie taka potrzeba.
By np. dodać wsparcie dla wspominanych plików tekstowych (.txt) i archiwów w formacie 7-Zip (.7z) wystarczy np. do pliku functions.php w motywie potomnym dodać taki kod:
function webinsider_wp_upload_mimes_types( $mimes ){
$mimes['txt'] = 'text/plain';
$mimes['7z'] = 'application/x-7z-compressed';
return $mimes;
}
add_filter( 'upload_mimes', 'webinsider_wp_upload_mimes_types', 1, 1 );
I teraz plik archiwum 7-Zip (.7z) zostanie zapisany, ale już plik wykonywalny (.exe) nie, bo tego formatu nie dodaliśmy do listy dozwolonych:
Jeśli zamiast dodawać, chcielibyśmy np. usunąć obsługę plików Adobe PDF (.pdf), można skorzystać z takiego kodu:
function webinsider_wp_upload_mimes_types( $mimes ){
unset($mimes['pdf']);
return $mimes;
}
add_filter( 'upload_mimes', 'webinsider_wp_upload_mimes_types', 1, 1 );
Można oczywiście też połączyć dodawanie i usuwanie w ramach jednej funkcji:
function webinsider_wp_upload_mimes_types( $mimes ){
$mimes['txt'] = 'text/plain';
$mimes['7z'] = 'application/x-7z-compressed';
unset($mimes['pdf']);
return $mimes;
}
add_filter( 'upload_mimes', 'webinsider_wp_upload_mimes_types', 1, 1 );
Oczywiście typu plików do dodania i usunięcia są przykładowe i można je zastąpić innymi. W przypadku dodawania nowych formatów plików, może przydać się określenie typu/formatu MIME dla pliku, co można zrobić np. na tej stronie.
![(!) Zgłoś błąd na stronie](https://webinsider.pl/wp-content/uploads/2019/12/webinsider_zglos-blad-na-stronie_200x29_888888.png)
![Pomogłem? To może postawisz mi wirtualną kawę?](https://webinsider.pl/wp-content/uploads/2025/12/pomogle-postaw-mi-wirtualna-kawe-202308-6f4e37.png)
- Zakupy w sklepie Bambu Lab bez podatku VAT, czyli rejestracja jako B2B oraz specjalny link do specjalnego sklepu - 1970-01-01
- W Home Assistant 2024.7 w końcu można bezpośrednio z właściwości danego elementu zarządzać jego rozmiarem w cały jeszcze czas eksperymentalnym układzie „sekcje” - 1970-01-01
- Sprzedajesz drona DJI? Usuń go ze swojego konta. Kupujesz używanego drona DJI? Zadbaj, by dotychczasowy właściciel usunął go ze swojego konta! - 1970-01-01