| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- /**
- * Embed support for Inline PDFs
- *
- * Takes a plain-text PDF URL (*.pdf), and attempts to embed it directly
- * in the post instead of leaving it as a bare link.
- *
- * @package automattic/jetpack
- */
- wp_embed_register_handler( 'inline-pdfs', '#https?://[^<]*\.pdf$#i', 'jetpack_inline_pdf_embed_handler' );
- /**
- * Callback to modify the output of embedded PDF files.
- *
- * @param array $matches Regex partial matches against the URL passed.
- * @param array $attr Attributes received in embed response.
- * @param array $url Requested URL to be embedded.
- */
- function jetpack_inline_pdf_embed_handler( $matches, $attr, $url ) {
- /** This action is documented in modules/widgets/social-media-icons.php */
- do_action( 'jetpack_bump_stats_extras', 'embeds', 'inline-pdf' );
- if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
- return sprintf(
- '<p><a href="%1$s">%2$s</a></p>',
- esc_url( $url ),
- esc_html__( 'PDF Document', 'jetpack' )
- );
- }
- $filename = basename( wp_parse_url( $url, PHP_URL_PATH ) );
- $fallback_text = sprintf(
- /* translators: Placeholder is a file name, for example "file.pdf" */
- esc_html__( 'Click to access %1$s', 'jetpack' ),
- $filename
- );
- return sprintf(
- '<object data="%1$s" type="application/pdf" width="100%%" height="800" style="height: 800px;">
- <p><a href="%1$s">%2$s</a></p>
- </object>',
- esc_attr( $url ),
- $fallback_text
- );
- }
|