Почему WordPress меняет название файла при его открытии?
Добрый день!
Есть страница на сайте на WordPress. Есть несколько pdf-файлов, которые расположены в Библиотеке.
Надо, чтобы со страницы пользователь мог открыть pdf-файл (в новой вкладке), ну, или же скачать. Если с процессом скачивания файла у меня вопросов не возникает, то в процессе открытия получается вот что:
1. В процессе загрузки файла в заголовке страницы отображается %сайт%/wp-content/uploads/2024/01/файл.pdf - и с этим я еще смирился бы, но
2. Файл открывается, и заголовок - невменяемый. Т.е., как я понимаю, это имя файла, но почему WordPress его меняет? И расширение вместо pdf, указывает indd.
По прямой ссылке Медиафайлы/Библиотека/файл.pdf - все тоже самое.
Почему это напрягает - индексируются некорректные имена, и потом хрень при поиске.
Дополнительно:
Ссылку можно?
Т.е., как я понимаю, это имя файла, но почему WordPress его меняет?
Нет, это не имя файла и ВП ничего не меняет.
И поскольку ссылки на файл нет, то я заглянул в хрустальный шар, который мне сказал что это название файла в кривой кодировке.
Оказывается, не все и не всегда прописывают корректно. Действительно, к WP отношения не имеет.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Когда PDF открывается в браузере, имя файла может отображаться не так, как Вы ожидаете, по нескольким причинам: браузер берёт имя из URL, сервер отдаёт заголовок
Content-Disposition, файл в медиабиблиотеке имеет другой slug, или WordPress создаёт ссылку на attachment page вместо прямого файла.Если нужно, чтобы пользователь открывал или скачивал PDF с нормальным именем, проверьте прямой URL файла в медиабиблиотеке. Он обычно выглядит так:
/wp-content/uploads/2026/05/file-name.pdf
Если в ссылке уже неправильное имя, переименуйте файл до загрузки или используйте плагин для переименования медиафайлов. Изменение title в медиабиблиотеке не всегда меняет физическое имя файла.
Для скачивания с заданным именем сервер должен отдать заголовок:
Content-Disposition: attachment; filename="normal-name.pdf"
Для открытия в новой вкладке:
Content-Disposition: inline; filename="normal-name.pdf"
WordPress по умолчанию обычно просто отдаёт файл как статический ресурс, и заголовки формирует веб-сервер. Поэтому управлять именем при открытии сложнее, чем при скачивании через PHP-контроллер.
Если нужно гарантированно отдавать PDF с нужным именем, можно сделать endpoint, который проверяет файл и отдаёт его:
header('Content-Type: application/pdf'); header('Content-Disposition: inline; filename="document.pdf"'); readfile($path); exit;
Но такой способ нужен не всегда. Для обычного сайта достаточно загрузить файл с правильным латинским именем и ссылаться на прямой URL.
Также проверьте, не включена ли кириллица в имени файла. Разные браузеры и серверы могут по-разному показывать русские имена. Для надёжности используйте латиницу, дефисы и понятный slug.
Итог: имя при открытии PDF берётся не из заголовка записи в WordPress, а из URL/HTTP-заголовков. Переименуйте физический файл или отдавайте PDF через контроллер с нужным
Content-Disposition.