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;
}
pobierz plik: iworks_add_allowed_tags.php
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;
}
Comments