~canonical-sysadmins/wordpress/4.5.2

« back to all changes in this revision

Viewing changes to wp-includes/embed-template.php

  • Committer: Manuel Seelaus
  • Date: 2015-12-09 17:47:18 UTC
  • mfrom: (1.1.11 upstream)
  • Revision ID: manuel.seelaus@canonical.com-20151209174718-coxethm2swbeqksy
Merge WP4.4 from upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/**
 
3
 * Contains the post embed template.
 
4
 *
 
5
 * When a post is embedded in an iframe, this file is used to
 
6
 * create the output.
 
7
 *
 
8
 * @package WordPress
 
9
 * @subpackage oEmbed
 
10
 * @since 4.4.0
 
11
 */
 
12
 
 
13
if ( ! headers_sent() ) {
 
14
        header( 'X-WP-embed: true' );
 
15
}
 
16
 
 
17
?>
 
18
<!DOCTYPE html>
 
19
<html <?php language_attributes(); ?> class="no-js">
 
20
<head>
 
21
        <title><?php echo wp_get_document_title(); ?></title>
 
22
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
 
23
        <?php
 
24
        /**
 
25
         * Print scripts or data in the embed template <head> tag.
 
26
         *
 
27
         * @since 4.4.0
 
28
         */
 
29
        do_action( 'embed_head' );
 
30
        ?>
 
31
</head>
 
32
<body <?php body_class(); ?>>
 
33
<?php
 
34
if ( have_posts() ) :
 
35
        while ( have_posts() ) : the_post();
 
36
                // Add post thumbnail to response if available.
 
37
                $thumbnail_id = false;
 
38
 
 
39
                if ( has_post_thumbnail() ) {
 
40
                        $thumbnail_id = get_post_thumbnail_id();
 
41
                }
 
42
 
 
43
                if ( 'attachment' === get_post_type() && wp_attachment_is_image() ) {
 
44
                        $thumbnail_id = get_the_ID();
 
45
                }
 
46
 
 
47
                if ( $thumbnail_id ) {
 
48
                        $aspect_ratio = 1;
 
49
                        $measurements = array( 1, 1 );
 
50
                        $image_size   = 'full'; // Fallback.
 
51
 
 
52
                        $meta = wp_get_attachment_metadata( $thumbnail_id );
 
53
                        if ( is_array( $meta ) ) {
 
54
                                foreach ( $meta['sizes'] as $size => $data ) {
 
55
                                        if ( $data['width'] / $data['height'] > $aspect_ratio ) {
 
56
                                                $aspect_ratio = $data['width'] / $data['height'];
 
57
                                                $measurements = array( $data['width'], $data['height'] );
 
58
                                                $image_size   = $size;
 
59
                                        }
 
60
                                }
 
61
                        }
 
62
 
 
63
                        /**
 
64
                         * Filter the thumbnail image size for use in the embed template.
 
65
                         *
 
66
                         * @since 4.4.0
 
67
                         *
 
68
                         * @param string $image_size Thumbnail image size.
 
69
                         */
 
70
                        $image_size = apply_filters( 'embed_thumbnail_image_size', $image_size );
 
71
 
 
72
                        $shape = $measurements[0] / $measurements[1] >= 1.75 ? 'rectangular' : 'square';
 
73
 
 
74
                        /**
 
75
                         * Filter the thumbnail shape for use in the embed template.
 
76
                         *
 
77
                         * Rectangular images are shown above the title
 
78
                         * while square images are shown next to the content.
 
79
                         *
 
80
                         * @since 4.4.0
 
81
                         *
 
82
                         * @param string $shape Thumbnail image shape. Either 'rectangular' or 'square'.
 
83
                         */
 
84
                        $shape = apply_filters( 'embed_thumbnail_image_shape', $shape );
 
85
                }
 
86
                ?>
 
87
                <div <?php post_class( 'wp-embed' ); ?>>
 
88
                        <?php if ( $thumbnail_id && 'rectangular' === $shape ) : ?>
 
89
                                <div class="wp-embed-featured-image rectangular">
 
90
                                        <a href="<?php the_permalink(); ?>" target="_top">
 
91
                                                <?php echo wp_get_attachment_image( $thumbnail_id, $image_size ); ?>
 
92
                                        </a>
 
93
                                </div>
 
94
                        <?php endif; ?>
 
95
 
 
96
                        <p class="wp-embed-heading">
 
97
                                <a href="<?php the_permalink(); ?>" target="_top">
 
98
                                        <?php the_title(); ?>
 
99
                                </a>
 
100
                        </p>
 
101
 
 
102
                        <?php if ( $thumbnail_id && 'square' === $shape ) : ?>
 
103
                                <div class="wp-embed-featured-image square">
 
104
                                        <a href="<?php the_permalink(); ?>" target="_top">
 
105
                                                <?php echo wp_get_attachment_image( $thumbnail_id, $image_size ); ?>
 
106
                                        </a>
 
107
                                </div>
 
108
                        <?php endif; ?>
 
109
 
 
110
                        <div class="wp-embed-excerpt"><?php the_excerpt_embed(); ?></div>
 
111
 
 
112
                        <?php
 
113
                        /**
 
114
                         * Print additional content after the embed excerpt.
 
115
                         *
 
116
                         * @since 4.4.0
 
117
                         */
 
118
                        do_action( 'embed_content' );
 
119
                        ?>
 
120
 
 
121
                        <div class="wp-embed-footer">
 
122
                                <div class="wp-embed-site-title">
 
123
                                        <?php
 
124
                                        $site_title = sprintf(
 
125
                                                '<a href="%s" target="_top"><img src="%s" srcset="%s 2x" width="32" height="32" alt="" class="wp-embed-site-icon"/><span>%s</span></a>',
 
126
                                                esc_url( home_url() ),
 
127
                                                esc_url( get_site_icon_url( 32, admin_url( 'images/w-logo-blue.png' ) ) ),
 
128
                                                esc_url( get_site_icon_url( 64, admin_url( 'images/w-logo-blue.png' ) ) ),
 
129
                                                esc_html( get_bloginfo( 'name' ) )
 
130
                                        );
 
131
 
 
132
                                        /**
 
133
                                         * Filter the site title HTML in the embed footer.
 
134
                                         *
 
135
                                         * @since 4.4.0
 
136
                                         *
 
137
                                         * @param string $site_title The site title HTML.
 
138
                                         */
 
139
                                        echo apply_filters( 'embed_site_title_html', $site_title );
 
140
                                        ?>
 
141
                                </div>
 
142
 
 
143
                                <div class="wp-embed-meta">
 
144
                                        <?php
 
145
                                        /**
 
146
                                         * Print additional meta content in the embed template.
 
147
                                         *
 
148
                                         * @since 4.4.0
 
149
                                         */
 
150
                                        do_action( 'embed_content_meta');
 
151
                                        ?>
 
152
                                </div>
 
153
                        </div>
 
154
                </div>
 
155
                <?php
 
156
        endwhile;
 
157
else :
 
158
        ?>
 
159
        <div class="wp-embed">
 
160
                <p class="wp-embed-heading"><?php _e( 'Oops! That embed can&#8217;t be found.' ); ?></p>
 
161
 
 
162
                <div class="wp-embed-excerpt">
 
163
                        <p>
 
164
                                <?php
 
165
                                printf(
 
166
                                        /* translators: %s: a link to the embedded site */
 
167
                                        __( 'It looks like nothing was found at this location. Maybe try visiting %s directly?' ),
 
168
                                        '<strong><a href="' . esc_url( home_url() ) . '">' . esc_html( get_bloginfo( 'name' ) ) . '</a></strong>'
 
169
                                );
 
170
                                ?>
 
171
                        </p>
 
172
                </div>
 
173
 
 
174
                <div class="wp-embed-footer">
 
175
                        <div class="wp-embed-site-title">
 
176
                                <?php
 
177
                                $site_title = sprintf(
 
178
                                        '<a href="%s" target="_top"><img src="%s" srcset="%s 2x" width="32" height="32" alt="" class="wp-embed-site-icon"/><span>%s</span></a>',
 
179
                                        esc_url( home_url() ),
 
180
                                        esc_url( get_site_icon_url( 32, admin_url( 'images/w-logo-blue.png' ) ) ),
 
181
                                        esc_url( get_site_icon_url( 64, admin_url( 'images/w-logo-blue.png' ) ) ),
 
182
                                        esc_html( get_bloginfo( 'name' ) )
 
183
                                );
 
184
 
 
185
                                /** This filter is documented in wp-includes/embed-template.php */
 
186
                                echo apply_filters( 'embed_site_title_html', $site_title );
 
187
                                ?>
 
188
                        </div>
 
189
                </div>
 
190
        </div>
 
191
        <?php
 
192
endif;
 
193
 
 
194
/**
 
195
 * Print scripts or data before the closing body tag in the embed template.
 
196
 *
 
197
 * @since 4.4.0
 
198
 */
 
199
do_action( 'embed_footer' );
 
200
?>
 
201
</body>
 
202
</html>