Хто бував на моєму блозі раніше, той бачив, що я часом виставляю ноти чи тексти пісень у форматі 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 і не потребують жодних додаткових дій. Як то кажуть, ще б файли самі в медіа-бібліотеку заходили 😂