Completed
Push — try/another-block-button ( c033ce...50ed03 )
by
unknown
22:09 queued 13:07
created

inline-pdfs.php ➔ jetpack_inline_pdf_embed_handler()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
nc 2
nop 3
dl 0
loc 18
rs 9.6666
c 0
b 0
f 0
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 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
	return sprintf(
32
		'<object data="%1$s" type="application/pdf" width="100%%" height="800">
33
			<p><a href="%1$s">%1$s</a></p>
34
		</object>',
35
		esc_attr( $url )
36
	);
37
}
38