Красивые URL для загрузки файлов?

9

Могут ли файлы, такие как PDF, быть загружены на пользовательские URL? Я хотел бы загрузить PDF www.example.com/whitepapers/pdf.pdfвместо www.example.com/wp-uploads/....

Я нашел плагин под названием WP Easy Uploader, который кажется нормальным, но я хотел проверить, есть ли другие решения.

Одним из решений, которое я обдумывал, было рассмотрение PDF как страницы, чтобы я мог назначить родительскую страницу для PDF. Это будет обрабатывать любые перенаправления в случае изменения URL родительской страницы.

ОБНОВЛЕНИЕ - больше не рассматриваю WP Easy Uploader, так как я не хочу иметь доступ по FTP из установки Wordpress по соображениям безопасности.

Мэтью Ксерри
источник

Ответы:

2

Вложения в целом (изображения, а также файлы, такие как PDF-файлы) имеют специальную «страницу вложения» формы example.com/main-post/attachment/file-title/. В большинстве тем это используется для отображения увеличенной версии изображения, все еще в макете темы (поэтому он возвращает файл HTML с изображением в нем, а не изображение напрямую).

Вы можете использовать это, создав файл шаблона, который обслуживает файл напрямую, а не просто отображает его. Затем, если вы создадите страницу example.com/whitepapers/с вложенным именем file.php, URL-адрес файла будет example.com/whitepapers/attachment/file.

Вам нужно будет создать файл в каталоге вашей темы с именем либо attachment.php(если вы хотите сделать это для всех вложений), либо application.php(если вы хотите сделать это только для файлов с типом mime, например application/*). В этом файле вы получаете местоположение файла вложения, а затем readfile()его в браузере. Я думаю, что уже есть плагины, которые могут сделать это для вас.

Ян Фабри
источник
подумаю над этим и попробую кое-что. Спасибо за совет
Мэтью Ксерри
Я снова думал об этом, и у меня есть 2 вопроса: 1) Если я прикрепляю файл Whitepapers к другой странице, то у меня есть 2 URL-адреса для одного и того же файла, который не очень оптимизирован для SEO 2) Сам файл не будет иметь URL-адреса но только URL в зависимости от того, прикреплен он или нет. Правильно?
Мэтью Ксерри
@thearchitect: если вы ссылаетесь на один и тот же файл с другой страницы, у него будет один и тот же URL (например, когда вы используете одно и то же изображение на двух разных страницах). Если файл не был прикреплен к сообщению, он все равно будет иметь (общий) URL, но мне нужно было бы посмотреть, что это было тогда. Вы можете изменить URL-адрес вложения, чтобы все они выглядели так, как /media/вы хотите.
Ян Фабри
@ Ян Требует ли ваше решение создать пустую страницу для каждого медиа-файла? Также я не могу указать разные пути для разных категорий мультимедиа, как это. Вот сценарий, который я хотел бы. Я хочу загрузить PDF, установить категорию для этого PDF (который не имеет отношения к сообщению / странице, к которой он прикреплен) и создать URL для этого PDF, например example.com/CATEGORY/FILENAME.pdf
Мэтью Ксерри,
@thearchitect: это должно быть возможно с некоторыми продвинутыми правилами переписывания (читай: не с «основным» кодом из WordPress). Дайте мне подумать об этом, и я постараюсь вернуться с ответом.
Ян Фабри
2

ОБНОВЛЕНИЕ : Найдены категории медиатеки, которые сортируют медиа по пользовательским категориям. Все, что мне сейчас нужно, это подобный плагин для добавления этой категории в URL, чтобы я мог выполнять перезапись URL и получать то, что мне нужно!


Нашел пару плагинов.

Переместить загрузку позволяет загружать в любую папку, а затем иметь выпадающий список при загрузке мультимедиа, чтобы разместить этот новый мультимедиа в ваших пользовательских местах. Это выглядит нормально, но файлы помещаются в реальные физические папки. Было бы лучше, если бы он мог загружать что-либо в одну папку с содержимым, а «папка», использованная в ссылке, была бы просто постоянной ссылкой. Также это не сработало при быстрой установке на локальный хост. Он продолжал пытаться получить доступ к C: \ wamp \ www ... вместо http: // localhost /

Custom Upload Dir позволяет загружать в пользовательские каталоги, но это не соответствует моим требованиям.

О WP Easy Upload - я не хочу использовать его, так как я не хочу предоставлять FTP-доступ к любому плагину внутри установки по соображениям безопасности.

Мэтью Ксерри
источник
1

Решение № 1 Вы можете изменить свой Media Path. Перейдите в Настройки-> Мультимедиа. Измените по умолчанию «wp-content / uploads» на «whitepapers», конечно, если вы загружаете другие файлы, кроме whitepapers, это решение не будет работать так хорошо.

Решение № 2 Используйте Pretty Link, чтобы настроить свой путь. Я использую Pretty Links, так как я использую WordPress; несколько лет назад.

В основном для упрощения путей к файлам.

Вы можете сопоставить «abc.com/whitepaper/file.pdf» с «abc.com/wp-content/uploads/file.pdf»

http://blairwilliams.com/pretty-link/

mrwes
источник
Спасибо за совет. Я предполагаю, что с этим плагином мне нужно будет создавать красивые URL после каждой загрузки, верно?
Мэтью Ксерри
@thearchitect - да, это плагин, вам нужно будет создать URL для каждой загрузки. Приятно то, что вы можете сопоставить любой красивый URL-адрес любому URL-адресу вашего сайта или внешнего сайта. то есть. mrwes.net/linkedin
mrwes
Я думаю, что плагин создает слишком много накладных расходов, так как он запускает JavaScript, отслеживание и т. Д. У нас уже есть большая часть его функциональности на месте. Нам просто нужно что-то, чтобы лучше организовать загрузку
Мэтью Ксерри