1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<?php /** * Twitter Timeline Shortcode. * * Examples: * [twitter-timeline username=jetpack] * * @package Jetpack */
/** * Render the Twitter shortcode. * * @param array $atts Shortcode attributes. */ function twitter_timeline_shortcode( $atts ) { $default_atts = array( 'username' => '', 'id' => '', 'width' => '450', 'height' => '282', );
$atts = shortcode_atts( $default_atts, $atts, 'twitter-timeline' );
$atts['username'] = preg_replace( '/[^A-Za-z0-9_]+/', '', $atts['username'] );
if ( empty( $atts['username'] ) && ! is_numeric( $atts['id'] ) ) { return '<!-- ' . __( 'Must specify Twitter Timeline id or username.', 'jetpack' ) . ' -->'; }
$output = '<a class="twitter-timeline"';
/** This filter is documented in modules/shortcodes/tweet.php */ $partner = apply_filters( 'jetpack_twitter_partner_id', 'jetpack' ); if ( ! empty( $partner ) ) { $output .= ' data-partner="' . esc_attr( $partner ) . '"'; } if ( is_numeric( $atts['width'] ) ) { $output .= ' data-width="' . esc_attr( $atts['width'] ) . '"'; } if ( is_numeric( $atts['height'] ) ) { $output .= ' data-height="' . esc_attr( $atts['height'] ) . '"'; } if ( is_numeric( $atts['id'] ) ) { $output .= ' data-widget-id="' . esc_attr( $atts['id'] ) . '"'; } if ( ! empty( $atts['username'] ) ) { $output .= ' href="' . esc_url( 'https://twitter.com/' . $atts['username'] ) . '"'; }
$output .= '>';
$output .= sprintf( /* Translators: placeholder is a Twitter username. */ __( 'Tweets by @%s', 'jetpack' ), $atts['username'] );
$output .= '</a>';
wp_enqueue_script( 'jetpack-twitter-timeline' );
return $output; } add_shortcode( 'twitter-timeline', 'twitter_timeline_shortcode' );
/** * Enqueue the js used by the Twitter shortcode. */ function twitter_timeline_js() { if ( is_customize_preview() ) { wp_enqueue_script( 'jetpack-twitter-timeline' ); } } add_action( 'wp_enqueue_scripts', 'twitter_timeline_js' );
|