Embeds: Don't print the HTML for a featured image if a post has no featured image.

See [36693].
Fixes #37288.
Built from https://develop.svn.wordpress.org/trunk@37988


git-svn-id: http://core.svn.wordpress.org/trunk@37929 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Dominik Schilling 2016-07-06 17:08:31 +00:00
parent d9b4f1e50b
commit b9d99d3288
2 changed files with 42 additions and 40 deletions

View File

@ -22,49 +22,51 @@
$thumbnail_id = get_the_ID(); $thumbnail_id = get_the_ID();
} }
$aspect_ratio = 1; if ( $thumbnail_id ) {
$measurements = array( 1, 1 ); $aspect_ratio = 1;
$image_size = 'full'; // Fallback. $measurements = array( 1, 1 );
$image_size = 'full'; // Fallback.
$meta = wp_get_attachment_metadata( $thumbnail_id ); $meta = wp_get_attachment_metadata( $thumbnail_id );
if ( ! empty( $meta['sizes'] ) ) { if ( ! empty( $meta['sizes'] ) ) {
foreach ( $meta['sizes'] as $size => $data ) { foreach ( $meta['sizes'] as $size => $data ) {
if ( $data['width'] / $data['height'] > $aspect_ratio ) { if ( $data['width'] / $data['height'] > $aspect_ratio ) {
$aspect_ratio = $data['width'] / $data['height']; $aspect_ratio = $data['width'] / $data['height'];
$measurements = array( $data['width'], $data['height'] ); $measurements = array( $data['width'], $data['height'] );
$image_size = $size; $image_size = $size;
}
} }
} }
/**
* Filters the thumbnail image size for use in the embed template.
*
* @since 4.4.0
* @since 4.5.0 Added `$thumbnail_id` parameter.
*
* @param string $image_size Thumbnail image size.
* @param int $thumbnail_id Attachment ID.
*/
$image_size = apply_filters( 'embed_thumbnail_image_size', $image_size, $thumbnail_id );
$shape = $measurements[0] / $measurements[1] >= 1.75 ? 'rectangular' : 'square';
/**
* Filters the thumbnail shape for use in the embed template.
*
* Rectangular images are shown above the title while square images
* are shown next to the content.
*
* @since 4.4.0
* @since 4.5.0 Added `$thumbnail_id` parameter.
*
* @param string $shape Thumbnail image shape. Either 'rectangular' or 'square'.
* @param int $thumbnail_id Attachment ID.
*/
$shape = apply_filters( 'embed_thumbnail_image_shape', $shape, $thumbnail_id );
} }
/** if ( $thumbnail_id && 'rectangular' === $shape ) : ?>
* Filters the thumbnail image size for use in the embed template.
*
* @since 4.4.0
* @since 4.5.0 Added `$thumbnail_id` parameter.
*
* @param string $image_size Thumbnail image size.
* @param int $thumbnail_id Attachment ID.
*/
$image_size = apply_filters( 'embed_thumbnail_image_size', $image_size, $thumbnail_id );
$shape = $measurements[0] / $measurements[1] >= 1.75 ? 'rectangular' : 'square';
/**
* Filters the thumbnail shape for use in the embed template.
*
* Rectangular images are shown above the title while square images
* are shown next to the content.
*
* @since 4.4.0
* @since 4.5.0 Added `$thumbnail_id` parameter.
*
* @param string $shape Thumbnail image shape. Either 'rectangular' or 'square'.
* @param int $thumbnail_id Attachment ID.
*/
$shape = apply_filters( 'embed_thumbnail_image_shape', $shape, $thumbnail_id );
if ( 'rectangular' === $shape ) : ?>
<div class="wp-embed-featured-image rectangular"> <div class="wp-embed-featured-image rectangular">
<a href="<?php the_permalink(); ?>" target="_top"> <a href="<?php the_permalink(); ?>" target="_top">
<?php echo wp_get_attachment_image( $thumbnail_id, $image_size ); ?> <?php echo wp_get_attachment_image( $thumbnail_id, $image_size ); ?>
@ -78,7 +80,7 @@
</a> </a>
</p> </p>
<?php if ( 'square' === $shape ) : ?> <?php if ( $thumbnail_id && 'square' === $shape ) : ?>
<div class="wp-embed-featured-image square"> <div class="wp-embed-featured-image square">
<a href="<?php the_permalink(); ?>" target="_top"> <a href="<?php the_permalink(); ?>" target="_top">
<?php echo wp_get_attachment_image( $thumbnail_id, $image_size ); ?> <?php echo wp_get_attachment_image( $thumbnail_id, $image_size ); ?>

View File

@ -4,7 +4,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '4.6-beta1-37987'; $wp_version = '4.6-beta1-37988';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.