Enlazar un PDF como documento descargable
¿Cómo puedo agregar un enlace a un PDF en el contenido, de modo que se descargue en lugar de abrirse en la ventana del navegador? (He subido el PDF a la biblioteca de medios y puedo insertar el enlace, pero no encuentro una opción para evitar que se abra en el navegador).
Gracias,
Lucy
esto es genial y mucho más rápido que todas las otras opciones. ¿Cómo puedo usar múltiples tipos de archivo? ¿Por ejemplo test.notebook con la parte (?i:pdf)?

Un archivo PDF se guardará con un tipo mime de application/pdf
, por lo que si tu tema tiene un archivo de plantilla application.php o pdf.php que fuerza la descarga (o si verificas el tipo mime en tu plantilla attachment.php), puedes forzar una descarga.
Un archivo pdf.php construido así en tu tema debería funcionar:
<?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"); // requerido
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // requerido para ciertos navegadores
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;
?>
(Edición: Debo mencionar que para que esto funcione, cuando insertes el archivo en tu publicación a través del cargador de medios, debes seleccionar URL de la publicación en lugar de URL del archivo en el campo URL del enlace antes de insertarlo en tu publicación. Un enlace a un nombre de archivo seguirá las preferencias del navegador, pero al enlazar al enlace de la publicación de WP, puedes controlar su comportamiento.)

Nunca deberías usar el guid de la publicación como URL. Es una URL solo porque es una cadena única; podría cambiar con la misma facilidad.

Gracias, cambié mi función para que utilice los metadatos '_wp_attached_file'
.

En realidad, eso depende completamente del navegador. Algunos navegadores abrirán el PDF en la ventana usando un lector de PDF integrado (la mayoría usa el complemento de Adobe, Google Chrome tiene el suyo propio). Sin embargo, si falta el complemento, el navegador intentará descargar el archivo en su lugar.
Tu opción más segura es agregar instrucciones en la página para que el usuario haga clic derecho y seleccione "guardar como".
Si te preocupa que los usuarios no puedan volver a la página después de hacer clic en un enlace, agrega target="_blank"
al enlace y esto forzará al navegador a abrir el enlace en una nueva pestaña o ventana. A veces, esto también puede ser suficiente para activar una descarga en lugar de abrir el archivo.
Ejemplo: <a href="http://site.url/document.pdf" target="_blank">Descargar PDF</a>
.

Solo usa el atributo download de la etiqueta a: https://www.w3schools.com/tags/att_a_download.asp
