Загрузка fb2 и epub на сайт WordPress
Изначально, на сайт WordPress файлы электронных книг с расширением .fb2 и .epub, равно как многие другие файлы, не загружаются.
Внизу страницы при этом выходит сообщение
«Извините, вам не разрешено загружать этот тип файла»

Самый простой вариант решения – это загрузить на сайт файл другого расширения. Например, в формате pdf или заархивировать электронную книгу в zip архив
Но если нужен именно такой формат, то придётся немного покодить. Код можно добавить в файл «Функции темы» (function.php)

Добавим туда функцию:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
function add_upload_mimes($mimes_types){ $mimes_types['fb2'] = 'text/xml'; // FB2 — это XML $mimes_types['epub'] = 'application/epub+zip'; // EPUB — это zip с разметкой return $mimes_types; } add_filter('upload_mimes', 'add_upload_mimes'); function add_upload_exception($types, $file, $filename, $mimes){ $wp_filetype = wp_check_filetype($filename, $mimes); $ext = $wp_filetype['ext']; $type = $wp_filetype['type']; if (in_array($ext, ['fb2', 'epub'])) { $types['ext'] = $ext; $types['type'] = $type; } return $types; } add_filter('wp_check_filetype_and_ext', 'add_upload_exception', 99, 4); |

WordPress иногда блокирует файлы с application/xml, но пропускает text/xml, особенно если файл не содержит опасных конструкций.
Некоторые сервера дополнительно фильтруют MIME-типы, и text/xml может быть у них в белом списке.
- application/xml — корректный и безопасный MIME для .fb2 (так как это XML-файл).
- application/epub+zip — официальный MIME EPUB.
- wp_check_filetype_and_ext обходит защиту WordPress, когда он проверяет файл «на глаз» по содержимому.
Теперь файлы форматов fb2 и epub загружаются и скачиваются без ограничений



Комментарии закрыты