Почему WordPress меняет название файла при его открытии?

Ссылка скопирована
1 ответ

Добрый день!
Есть страница на сайте на WordPress. Есть несколько pdf-файлов, которые расположены в Библиотеке.
Надо, чтобы со страницы пользователь мог открыть pdf-файл (в новой вкладке), ну, или же скачать. Если с процессом скачивания файла у меня вопросов не возникает, то в процессе открытия получается вот что:
1. В процессе загрузки файла в заголовке страницы отображается %сайт%/wp-content/uploads/2024/01/файл.pdf - и с этим я еще смирился бы, но
2. Файл открывается, и заголовок - невменяемый. Т.е., как я понимаю, это имя файла, но почему WordPress его меняет? И расширение вместо pdf, указывает indd.
По прямой ссылке Медиафайлы/Библиотека/файл.pdf - все тоже самое.
Почему это напрягает - индексируются некорректные имена, и потом хрень при поиске.

Дополнительно:

Ссылку можно?

  • Показывайте код
  • Т.е., как я понимаю, это имя файла, но почему WordPress его меняет?

    Нет, это не имя файла и ВП ничего не меняет.

    И поскольку ссылки на файл нет, то я заглянул в хрустальный шар, который мне сказал что это название файла в кривой кодировке.

  • Простите, господа, что отвлек ваше внимание. Проблема решена. Название во вкладке берется из описания pdf.
    Оказывается, не все и не всегда прописывают корректно. Действительно, к WP отношения не имеет.
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Максим Павлов Ответ

    Когда PDF открывается в браузере, имя файла может отображаться не так, как Вы ожидаете, по нескольким причинам: браузер берёт имя из URL, сервер отдаёт заголовок Content-Disposition, файл в медиабиблиотеке имеет другой slug, или WordPress создаёт ссылку на attachment page вместо прямого файла.

    Если нужно, чтобы пользователь открывал или скачивал PDF с нормальным именем, проверьте прямой URL файла в медиабиблиотеке. Он обычно выглядит так:

    /wp-content/uploads/2026/05/file-name.pdf

    /wp-content/uploads/2026/05/file-name.pdf

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

    Для скачивания с заданным именем сервер должен отдать заголовок:

    Content-Disposition: attachment; filename="normal-name.pdf"

    Content-Disposition: attachment; filename="normal-name.pdf"

    Для открытия в новой вкладке:

    Content-Disposition: inline; 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;

    header('Content-Type: application/pdf'); header('Content-Disposition: inline; filename="document.pdf"'); readfile($path); exit;

    Но такой способ нужен не всегда. Для обычного сайта достаточно загрузить файл с правильным латинским именем и ссылаться на прямой URL.

    Также проверьте, не включена ли кириллица в имени файла. Разные браузеры и серверы могут по-разному показывать русские имена. Для надёжности используйте латиницу, дефисы и понятный slug.

    Итог: имя при открытии PDF берётся не из заголовка записи в WordPress, а из URL/HTTP-заголовков. Переименуйте физический файл или отдавайте PDF через контроллер с нужным Content-Disposition.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно