Как сделать ссылку на PDF для скачивания
это отлично и намного быстрее, чем все другие варианты. Как я могу использовать несколько типов файлов? Например, test.notebook с частью (?i:pdf)?

PDF-файл будет сохранён с MIME-типом application/pdf
, поэтому если ваша тема содержит шаблонный файл application.php или pdf.php, который принудительно вызывает скачивание (или если вы проверяете MIME-тип в шаблоне attachment.php), вы можете принудительно заставить файл скачиваться.
Файл pdf.php, созданный в вашей теме следующим образом, решит задачу:
<?php if (have_posts()) : while (have_posts()) : the_post();
$pdf_title = $post->post_title;
$uploads_dir = wp_upload_dir();
$attachment_src = get_post_meta( $post->ID, '_wp_attached_file', true );
$pdf_src = path_join( $uploads_dir['path'], $attachment_src );
header("Pragma: public"); // требуется
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // необходимо для некоторых браузеров
header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename=\"".$pdf_title."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($pdf_src));
ob_clean();
flush();
readfile("$pdf_src");
endwhile; endif;
?>
(Примечание: чтобы это работало, при вставке файла в запись через медиа-загрузчик, необходимо выбрать URL записи вместо URL файла в поле Ссылка URL перед вставкой в запись. Ссылка на имя файла будет следовать настройкам браузера, но, ссылаясь на URL записи WordPress, вы можете контролировать его поведение.)

Никогда не следует использовать guid записи в качестве URL. Это URL только потому, что это уникальная строка; он может так же легко измениться.

Спасибо, я изменил свою функцию, чтобы она работала с метаданными '_wp_attached_file'
.

На самом деле это полностью зависит от браузера. Некоторые браузеры открывают PDF прямо в окне с помощью встроенного PDF-ридера (большинство используют плагин Adobe, Google Chrome имеет собственный). Однако если плагин отсутствует, браузер попытается скачать файл.
Самый надежный вариант — добавить на страницу инструкцию для пользователя, чтобы он нажал правой кнопкой мыши и выбрал "Сохранить как".
Если вы беспокоитесь, что пользователи не смогут вернуться на страницу после перехода по ссылке, добавьте атрибут target="_blank"
к ссылке, и браузер откроет её в новой вкладке или окне. Иногда этого достаточно, чтобы вместо открытия файл начал скачиваться.
Например: <a href="http://site.url/document.pdf" target="_blank">Скачать PDF</a>
.

Просто используйте атрибут download у тега <a>: https://www.w3schools.com/tags/att_a_download.asp
