Как поставить ограничение на разрешение файлов?

чтобы можно было загрузить к примеру только pdf файлы

if( isset( $_POST['upload_files'] ) ) {

    $site = $_SERVER['DOCUMENT_ROOT'];
    $path = '/wp-content/uploads/files';
    $uploaddir = $site . $path;

    // cоздадим папку если её нет
    if( ! is_dir( $uploaddir ) ) mkdir( $uploaddir, 0755 );

    $files  = $_FILES; // полученные файлы
    $done_files = array();

    // переместим файлы из временной директории в указанную
    foreach( $files as $file ){
        $file_name = $file['name'];
        if( move_uploaded_file( $file['tmp_name'], "$uploaddir/$file_name" ) ){
            $done_files[] = realpath( "$uploaddir/$file_name" );
            $text .= "Ссылка на файл: ".realpath( "$uploaddir/$file_name" ) . "\n";
        }
    }

    $data = $done_files ? array('files' => $done_files ) : array('error' => 'Ошибка загрузки файлов.');

}

Ответы (1 шт):

Автор решения: SeVlad

Для запрета загрузки определённых типов можно написать плагин со следующим содержимым

function disable_upload_types( $mimes ) {

     unset( $mimes['zip'] ); //отключаемый тип файла

     return $mimes;
}

add_filter( 'upload_mimes', 'disable_upload_types' );

Актуальный список используемых типов можно найти в документации и коде функции wp_get_mime_types.

→ Ссылка