Ładne adresy URL do przesyłania plików?

9

Czy pliki takie jak pliki PDF można przesyłać na niestandardowe adresy URL? Chciałbym przesłać plik PDF www.example.com/whitepapers/pdf.pdfzamiast www.example.com/wp-uploads/....

Znalazłem wtyczkę o nazwie WP Easy Uploader, która wydaje się OK, ale chciałem sprawdzić, czy są jakieś inne rozwiązania.

Jednym z rozważanych przeze mnie rozwiązań jest potraktowanie pliku PDF jako strony, aby móc przypisać stronę nadrzędną do pliku PDF. Będzie to obsługiwać wszelkie przekierowania w przypadku zmiany adresu URL strony nadrzędnej.

AKTUALIZACJA - Nie rozważam już WP Easy Uploader, ponieważ ze względów bezpieczeństwa nie chcę mieć dostępu do FTP z poziomu instalacji Wordpress.

Matthew Xerri
źródło

Odpowiedzi:

2

Załączniki ogólnie (obrazy, ale także pliki takie jak pliki PDF) mają specjalną „stronę załącznika” formularza example.com/main-post/attachment/file-title/. W większości motywów służy to do wyświetlania większej wersji obrazu, wciąż w układzie motywu (więc zwraca plik HTML z obrazem, a nie obraz bezpośrednio).

Możesz to wykorzystać, tworząc plik szablonu, który bezpośrednio obsługuje ten plik, zamiast go tylko wyświetlać. Następnie, jeśli utworzysz stronę example.com/whitepapers/z wywoływanym załącznikiem file.php, adres URL pliku to example.com/whitepapers/attachment/file.

Musisz utworzyć plik w katalogu motywów o nazwie albo attachment.php(jeśli chcesz to zrobić dla wszystkich załączników) lub application.php(jeśli chcesz to zrobić tylko dla plików o typie MIME, takich jak application/*). W tym pliku otrzymujesz lokalizację pliku załącznika, a następnie readfile()do przeglądarki. Sądzę, że istnieją już wtyczki, które mogą to dla ciebie zrobić.

Jan Fabry
źródło
zastanowi się nad tym i spróbuje kilku rzeczy. Dzięki za podpowiedź
Matthew Xerri
Znowu o tym myślałem i mam 2 pytania: 1) Jeśli dołączę plik Whitepapers do innej strony, to mam 2 adresy URL tego samego pliku, który nie jest zbyt przyjazny dla SEO 2) Sam plik nie miałby adresu URL ale tylko adres URL w zależności od tego, czy jest dołączony, czy nie. Dobrze?
Matthew Xerri
@architektect: jeśli link do tego samego pliku z innej strony, będzie miał ten sam adres URL (tak jak w przypadku korzystania z tego samego obrazu na dwóch różnych stronach). Jeśli plik nie został dołączony do posta, nadal będzie miał (ogólny) adres URL, ale musiałbym sprawdzić, co wtedy było. Możesz zmienić adres URL załącznika, aby wszystkie wyglądały tak /media/, jak chcesz.
Jan Fabry
@Jan Czy Twoje rozwiązanie wymaga ode mnie utworzenia pustej strony dla każdego pliku multimedialnego? Nie mogę też określić różnych ścieżek dla różnych kategorii mediów, takich jak ta. Oto scenariusz, który chciałbym. Chcę załadować plik PDF, należy ustawić kategorię do tego formatu PDF (co jest irelevant do post / strona jest dołączony do) i mają URL utworzonej w tym PDF jak example.com/CATEGORY/FILENAME.pdf
Matthew Xerri
@thearchitect: Powinno to być możliwe dzięki zaawansowanym regułom przepisywania (czytaj: nie z kodem „core” z WordPress). Niech pomyślę o tym, a spróbuję wrócić z odpowiedzią.
Jan Fabry
2

AKTUALIZACJA : Znaleziono kategorie bibliotek multimediów, które sortują multimedia według kategorii niestandardowych. Teraz potrzebuję tylko podobnej wtyczki, aby dodać tę kategorię do adresu URL, dzięki czemu będę mógł przepisać adresy URL i uzyskać to, czego potrzebuję!


Znaleziono kilka wtyczek.

Przeniesienie przesyłania pozwala przesłać do dowolnego folderu, a następnie mieć listę rozwijaną podczas przesyłania mediów, aby umieścić te nowe media w niestandardowych lokalizacjach. Wygląda dobrze, ale pliki są umieszczane w rzeczywistych folderach fizycznych. Byłoby lepiej, gdyby mógł przesłać cokolwiek w jednym folderze zawartości, a „folder” użyty w łączu byłby tylko linkiem bezpośrednim. Również nie działał dobrze w przypadku szybkiej instalacji hosta lokalnego. Próbował uzyskać dostęp do C: \ wamp \ www ... zamiast http: // localhost /

Custom Upload Dir pozwala na przesyłanie w niestandardowych katalogach, ale nie spełniło to moich wymagań.

Informacje o łatwym przesyłaniu WP - nie chcę z niego korzystać, ponieważ nie chcę zezwalać FTP na dostęp do żadnej wtyczki w instalacji ze względów bezpieczeństwa.

Matthew Xerri
źródło
1

Rozwiązanie nr 1 Możesz zmienić ścieżkę multimediów. Idź do Ustawienia-> Media Zmień domyślną „wp-content / uploads” na „whitepapers”, oczywiście jeśli przesyłasz inne niż oficjalne dokumenty, to rozwiązanie nie będzie działało tak dobrze.

Rozwiązanie nr 2 Użyj Pretty Link, aby dostosować swoją ścieżkę Korzystam z Pretty Links, odkąd korzystam z WordPress; już kilka lat.

Głównie w celu uproszczenia ścieżek do plików.

Możesz zamapować „abc.com/whitepaper/file.pdf” na „abc.com/wp-content/uploads/file.pdf”

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

mrwes
źródło
dzięki za wskazówkę. Zgaduję, że dzięki tej wtyczce musiałbym utworzyć ładny adres URL po każdym przesłaniu, prawda?
Matthew Xerri
@ thearchitect - tak, to jest wtyczka, musisz utworzyć adres URL dla każdego przesłanego pliku. Fajną rzeczą jest to, że możesz zmapować dowolny ładny adres URL na dowolny adres URL do swojej witryny lub witryny zewnętrznej. to znaczy. mrwes.net/linkedin
mrwes
Myślę, że wtyczka powoduje zbyt duże obciążenie, ponieważ uruchamia javascript, śledzenie itp. Mamy już większość jej funkcji. Potrzebujemy tylko czegoś, aby lepiej zorganizować przesyłanie
Matthew Xerri,