Хто бував на моєму блозі раніше, той бачив, що я часом виставляю ноти чи тексти пісень у форматі PDF. Для того, щоб документ можна було переглянути просто на сайті, не звантажуючи до себе на комп'ютер, я користуюся плагіном PDF Viewer.
Даний плагін працює наступним чином: береш звичайне посилання на файл PDF (наприклад, https://mysite.com/filename.pdf
) і обертаєш його в шорткод [pdfviewer]
з двох боків. Має вийти отак:
[pdfviewer]https://mysite.com/filename.pdf[/pdfviewer]
При перегляді статті плагін виводить цілий документ для перегляду у рамці iframe.
Так от, задався я запитанням. Якщо вставляти медіа (в даному випадку PDF-файл) стандартним методом через медіа-бібліотеку, то посилання виглядає наступним чином:
<a href="https://mysite.com/filename.pdf">filename</a>
Тобто, після вставки медіа доводиться ще приводити вигляд посилання до необхідного мені вигляду. А якщо весь сайт і базується на вставці величезної кількості подібних файлів? Кожне посилання редагувати вручну? "Тільки не я", – подумав я собі і наґуґлив класний код.
Як просто змінити посилання на медіа у WordPress
function replace_pdf_link( $html, $id ) {
$attachment = get_post( $id );
$mime_type = $attachment->post_mime_type;
if ( $mime_type == 'application/pdf' ) {
$src = wp_get_attachment_url( $id );
$html = '[pdfviewer]'. $src .'[/pdfviewer]';
}
return $html;
}
add_filter('media_send_to_editor', 'replace_pdf_link', 20, 3);
Даний код визначає mime-тип файла, який прикріпляється до статті, і, якщо тип відповідає тому, що нам потрібний, то приводить його до знову ж таки потрібного нам вигляду. Вставляти його потрібно у файл functions.php
із папки твого шаблона.
Якщо включити логіку, то подібним способом ти можеш змінити посилання на медіа до невпізнання: додати свій клас, пристосувати до фреймворка (Bootstrap та ін.), підлаштувати під будь-який плагін та ще безліч варіантів.
А в даному випадку я таки добився результату, який шукав: файли PDF вставляються відразу готовими до обробки плагіном PDF Viewer і не потребують жодних додаткових дій. Як то кажуть, ще б файли самі в медіа-бібліотеку заходили 😂
Прокоментувати
На сайті відображається лише твоє ім'я та коментар. Електронна пошта зберігається виключно для зв'язку з тобою за потреби та в жодному разі не передається стороннім особам.