как загрузить и разрешить загрузку форматов .mobi и .epub

10

У меня есть загружаемые продукты для продажи.

Я создал пользовательские мета-блоки для хранения данных, которые мне нужны, это позволяет мне загружать в пользовательские метаданные штрафа файлы .doc и .pdf ...

Однако, когда я пытаюсь загрузить .mobi и .epub - он не загружает файлы ...

Я подозреваю, что у меня также возникнут проблемы, когда я попытаюсь перейти по ссылке для скачивания файлов, но я перейду этот мост, когда приду к нему.

Любая помощь в этом была бы фантастической.

Майкл Стотт
источник

Ответы:

10

Предполагая, что вы используете загрузчик носителей WordPress, вы можете использовать upload_mimesфильтр-фильтр для добавления или удаления разрешенных типов файлов, например:

function custom_myme_types($mime_types){

    //Adding avi extension
    $mime_types['avi'] = 'video/avi'; 

    //Removing the pdf extension
    unset($mime_types['pdf']); 

    return $mime_types;
}

add_filter('upload_mimes', 'custom_myme_types', 1, 1);

Вы можете видеть, что для добавления типа файла, который вы просто добавляете в массив с расширением файла в качестве ключа и типом mime в качестве значения, тип MIME для файла формата .mobi равен, application/x-mobipocket-ebookа для формата .epub -application/epub+zip

Bainternet
источник
5
Также я хотел бы добавить к ответу Bainternet, что если вы используете Apache, например, он может не знать о расширениях файлов .mobi / .epub и их соответствующих типах MIME. Если вы получили файл, который не был найден при попытке просмотра файла, вам может понадобиться добавить MIME-типы на сервер. Для Apache вы можете сделать это, используя файл htaccess, и добавить что-то вроде этого:AddType application/x-shockwave-flash swf
Brady
Спасибо, я попытался добавить приведенный выше код в мою тему functions.php, и он начинает говорить, что заголовки уже отправлены. Я использую Apache, и я уже исправил свой файл .htaccess.
Майкл Стотт
Я лгу, у меня, похоже, все получилось. Превосходно.
Майкл Стотт
Рад, что у вас все получилось
Bainternet