mirror of
https://github.com/WordPress/WordPress.git
synced 2024-08-19 20:33:00 +02:00
TwentySeventeen attempts to highlight media found in post content by using `get_media_embedded_in_content()` to extract videos from the content and display their HTML differently. However, the HTML being generated by the playlist shortcode relies on JavaScript to update the video element with the markup needed to display the playlist properly. The `get_media_embedded_in_content()` function wasn't designed to handle this use case. The patch looks for the presence of `wp-playlist-script` in the content and shows the standard content rather than trying to pluck the media elements from the content using `get_media_embedded_in_content()`. Props joemcgill. Fixes #38390. Built from https://develop.svn.wordpress.org/trunk@39146 git-svn-id: http://core.svn.wordpress.org/trunk@39086 1a063a9b-81f0-0310-95a4-ce76da25c4cd
98 lines
2.5 KiB
PHP
98 lines
2.5 KiB
PHP
<?php
|
|
/**
|
|
* Template part for displaying video posts
|
|
*
|
|
* @link https://codex.wordpress.org/Template_Hierarchy
|
|
*
|
|
* @package WordPress
|
|
* @subpackage Twenty_Seventeen
|
|
* @since 1.0
|
|
* @version 1.0
|
|
*/
|
|
?>
|
|
|
|
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
|
|
<?php
|
|
if ( is_sticky() && is_home() ) :
|
|
echo twentyseventeen_get_svg( array( 'icon' => 'thumb-tack' ) );
|
|
endif;
|
|
?>
|
|
<header class="entry-header">
|
|
<?php
|
|
if ( 'post' === get_post_type() ) :
|
|
echo '<div class="entry-meta">';
|
|
if ( is_single() ) :
|
|
twentyseventeen_posted_on();
|
|
else :
|
|
echo twentyseventeen_time_link();
|
|
twentyseventeen_edit_link();
|
|
endif;
|
|
echo '</div><!-- .entry-meta -->';
|
|
endif;
|
|
|
|
if ( is_single() ) {
|
|
the_title( '<h1 class="entry-title">', '</h1>' );
|
|
} else {
|
|
the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
|
|
}
|
|
?>
|
|
</header><!-- .entry-header -->
|
|
|
|
<?php
|
|
$content = apply_filters( 'the_content', get_the_content() );
|
|
$video = false;
|
|
|
|
// Only get video from the content if a playlist isn't present.
|
|
if ( false === strpos( $content, 'wp-playlist-script' ) ) {
|
|
$video = get_media_embedded_in_content( $content, array( 'video', 'object', 'embed', 'iframe' ) );
|
|
}
|
|
?>
|
|
|
|
<?php if ( '' !== get_the_post_thumbnail() && ! is_single() && empty( $video ) ) : ?>
|
|
<div class="post-thumbnail">
|
|
<a href="<?php the_permalink(); ?>">
|
|
<?php the_post_thumbnail( 'twentyseventeen-featured-image' ); ?>
|
|
</a>
|
|
</div><!-- .post-thumbnail -->
|
|
<?php endif; ?>
|
|
|
|
<div class="entry-content">
|
|
|
|
<?php if ( ! is_single() ) :
|
|
|
|
// If not a single post, highlight the video file.
|
|
if ( ! empty( $video ) ) :
|
|
foreach ( $video as $video_html ) {
|
|
echo '<div class="entry-video">';
|
|
echo $video_html;
|
|
echo '</div>';
|
|
}
|
|
endif;
|
|
|
|
endif;
|
|
|
|
if ( is_single() || empty( $video ) ) :
|
|
|
|
/* translators: %s: Name of current post */
|
|
the_content( sprintf(
|
|
__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ),
|
|
get_the_title()
|
|
) );
|
|
|
|
wp_link_pages( array(
|
|
'before' => '<div class="page-links">' . __( 'Pages:', 'twentyseventeen' ),
|
|
'after' => '</div>',
|
|
'link_before' => '<span class="page-number">',
|
|
'link_after' => '</span>',
|
|
) );
|
|
|
|
endif; ?>
|
|
|
|
</div><!-- .entry-content -->
|
|
|
|
<?php if ( is_single() ) : ?>
|
|
<?php twentyseventeen_entry_footer(); ?>
|
|
<?php endif; ?>
|
|
|
|
</article><!-- #post-## -->
|