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:

  1. wrzuć załączony plik do folderu wp-content/plugins, a potem włącz wtyczkę
  2. wrzuć załączony plik do folderu wp-content/mu-plugins
  3. 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;
}

Published by Marcin Pietrzak

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis nec ante nec lectus laoreet feugiat. Donec aliquet justo in tellus gravida, id elementum magna convallis. Curabitur faucibus mauris sed risus egestas lobortis. Nunc vestibulum elit ac ipsum ultricies, non ultrices lorem ultrices. Nam at dolor id elit lobortis ullamcorper. Fusce commodo turpis nisi, efficitur efficitur libero dictum eget. Morbi viverra dignissim lacus. Vestibulum mi justo, dictum ut iaculis eget, scelerisque et nibh.

Przeczytaj poprzedni wpis:
Filtr dnia: script_loader_src

Filtr bardzo podobny do style_loader_src, ale dla odmiany działający np. na pliki javascriptu. Od dłuższego czasu denerwowało mnie to, że...

Zamknij