PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 10.1.1
Jetpack – WP Security, Backup, Speed, & Growth v10.1.1
16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 All 501 releases
jetpack / modules / shortcodes / inline-pdfs.php

inline-pdfs.php in Jetpack – WP Security, Backup, Speed, & Growth 10.1.1, at modules/shortcodes/inline-pdfs.php

47 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Embed support for Inline PDFs
4 *
5 * Takes a plain-text PDF URL (*.pdf), and attempts to embed it directly
6 * in the post instead of leaving it as a bare link.
7 *
8 * @package automattic/jetpack
9 */
10
11 wp_embed_register_handler( 'inline-pdfs', '#https?://[^<]*\.pdf$#i', 'jetpack_inline_pdf_embed_handler' );
12
13 /**
14 * Callback to modify the output of embedded PDF files.
15 *
16 * @param array $matches Regex partial matches against the URL passed.
17 * @param array $attr Attributes received in embed response.
18 * @param array $url Requested URL to be embedded.
19 */
20 function jetpack_inline_pdf_embed_handler( $matches, $attr, $url ) {
21 /** This action is documented in modules/widgets/social-media-icons.php */
22 do_action( 'jetpack_bump_stats_extras', 'embeds', 'inline-pdf' );
23
24 if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
25 return sprintf(
26 '<p><a href="%1$s">%2$s</a></p>',
27 esc_url( $url ),
28 esc_html__( 'PDF Document', 'jetpack' )
29 );
30 }
31
32 $filename = basename( wp_parse_url( $url, PHP_URL_PATH ) );
33 $fallback_text = sprintf(
34 /* translators: Placeholder is a file name, for example "file.pdf" */
35 esc_html__( 'Click to access %1$s', 'jetpack' ),
36 $filename
37 );
38
39 return sprintf(
40 '<object data="%1$s" type="application/pdf" width="100%%" height="800" style="height: 800px;">
41 <p><a href="%1$s">%2$s</a></p>
42 </object>',
43 esc_attr( $url ),
44 $fallback_text
45 );
46 }
47