Dzisiejszy filtr pozwala na zmianę listy dopuszczonych typów plików, jakie można dodać do mediów. Jest jeden kruczek. Jeżeli WordPress, którego używasz pracuje w trybie pojedynczej witryny, a popełniasz ten błąd, że publikujesz z konta administratora, to opisywany problem i jego rozwiązanie ciebie nie dotyczy. Zwyczajnie go nie zauważysz, bo WP nie ma, a tym bardziej konto administratora nie ma ograniczeń w dodawaniu plików.
Jeżeli natomiast choć raz widziałaś lub widziałeś komunikat:
Przepraszamy, wysyłanie plików tego typu nie jest dozwolone z powodów związanych z bezpieczeństwem.
A nadal potrzebujesz dodać plik takiego typu, to…
Rozwiązanie jest użycie filtra upload_mimes, który pozwala na dołożenia własnych typów plików.
Filtr na wejściu przyjmuje tablicę asocjacyjną, której kluczami są rozszerzenia plików, natomiast wartościami typ mime powiązany z danym rozszerzeniem.
Dodawanie nowych, dopuszczonych rozszerzeń polega tylko na uzupełnienie tej tablicy o potrzebne nam typy. Należy tylko pamiętać, że niektóre typy plików mają więcej niż jedno rozszerzenie.
Na koniec, jak w każdym filtrze, należy naszą wartość, w tym przypadku tablicę, po prostu zwrócić.
add_filter( 'upload_mimes', 'iworks_custom_upload_mimes' ); function iworks_custom_upload_mimes ( $existing_mimes=array() ) { $existing_mimes['gzip'] = 'application/x-gzip'; $existing_mimes['gz'] = 'application/x-gzip'; $existing_mimes['zip'] = 'application/zip'; $existing_mimes['csv'] = 'text/csv'; return $existing_mimes; } |
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
Na sam koniec, tym samym filtrem można zabrać możliwość dodawania plików, poprzez zabranie jakiegoś elementu z tablicy. Np. usunięcie możliwości dodawania plików gif:
add_filter( 'upload_mimes', 'iworks_remove_gif_upload_mimes' ); function iworks_remove_gif_upload_mimes ( $existing_mimes=array() ) { if ( isset($existing_mimes['gif']) ) { unset($existing_mimes['gif']); } return $existing_mimes; } |