Collegare un PDF come documento scaricabile
Come posso aggiungere un link a un PDF nel contenuto, in modo che venga scaricato invece di aprirsi nella finestra del browser? (Ho caricato il PDF nella libreria multimediale e posso inserire il collegamento, ma non trovo un'opzione per impedire che si apra nella finestra del browser).
Grazie,
Lucy
è fantastico e molto più veloce rispetto alle altre opzioni. Come posso usare più tipi di file? Ad esempio test.notebook con la parte (?i:pdf)?

Un PDF verrà salvato con il mime-type application/pdf
, quindi se il tuo tema ha un file template application.php o pdf.php che forza il download (o se controlli il mime-type nel tuo template attachment.php), puoi forzare il download.
Un file pdf.php strutturato così nel tuo tema dovrebbe funzionare:
<?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"); // richiesto
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // richiesto per alcuni browser
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;
?>
(Nota: affinché questo funzioni, quando inserisci il file nel tuo post tramite il media uploader, devi selezionare URL del post invece di URL del file nel campo Link URL prima di inserirlo nel post. Un collegamento a un nome file seguirà le preferenze del browser, ma collegandoti al link del post WP, puoi controllarne il comportamento.)

Non dovresti mai usare il guid del post come URL. È un URL solo perché è una stringa univoca; potrebbe altrettanto facilmente cambiare.

Grazie, ho modificato la mia funzione per basarsi sui metadati '_wp_attached_file'
.

In realtà, dipende completamente dal browser. Alcuni browser apriranno un PDF direttamente nella finestra utilizzando un lettore PDF integrato (la maggior parte utilizza il plug-in Adobe, mentre Google Chrome ha il proprio). Se però il plug-in manca, il browser cercherà invece di scaricare il file.
La soluzione più sicura è aggiungere istruzioni nella pagina che indichino all'utente di fare clic destro e selezionare "Salva con nome".
Se sei preoccupato che gli utenti non riescano a tornare alla pagina dopo aver cliccato su un link, aggiungi target="_blank"
al link e forzerai il browser ad aprirlo in una nuova scheda o finestra. A volte, questo può anche essere sufficiente per attivare lo scaricamento invece dell'apertura.
Esempio: <a href="http://site.url/document.pdf" target="_blank">Scarica PDF</a>
.

Basta utilizzare l'attributo download del tag a: https://www.w3schools.com/tags/att_a_download.asp
