WordPress.org

Make WordPress Core

Ticket #23282: 23282.3.diff

File 23282.3.diff, 4.9 KB (added by wonderboymusic, 5 years ago)
  • wp-includes/media.php

    diff --git wp-includes/media.php wp-includes/media.php
    index 682ffbb..68666a0 100644
    function gallery_shortcode($attr) { 
    803803}
    804804
    805805/**
     806 * The Audio shortcode.
     807 *
     808 * This implements the functionality of the Audio Shortcode for displaying
     809 * WordPress mp3s in a post.
     810 *
     811 * @since 3.6.0
     812 *
     813 * @param array $attr Attributes of the shortcode.
     814 * @return string HTML content to display audio.
     815 */
     816function wp_audio_shortcode( $attr ) {
     817        $post = get_post();
     818
     819        static $instances = 0;
     820        $instances++;
     821
     822        $audio = null;
     823
     824        extract( shortcode_atts( array(
     825                'src' => '',
     826                'ogg' => ''
     827        ), $attr ) );
     828
     829        if ( empty( $src ) ) {
     830                $children = get_children( array(
     831                        'post_parent' => $post->ID,
     832                        'post_type' => 'attachment',
     833                        'post_mime_type' => 'audio',
     834                        'posts_per_page' => 1
     835                ) );
     836
     837                if ( empty( $children ) )
     838                        return;
     839
     840                $audio = reset( $children );
     841                $src = wp_get_attachment_url( $audio->ID );
     842                if ( empty( $src ) )
     843                        return;
     844        }
     845
     846        wp_enqueue_style( 'wp-mediaelement' );
     847        wp_enqueue_script( 'wp-mediaelement' );
     848
     849        $html = sprintf( '<audio class="%s" id="%s" src="%s" type="audio/mp3" controls="controls"></audio>',
     850                apply_filters( 'audio_shortcode_class', 'wp-audio-shortcode' ),
     851                sprintf( 'audio-%d-%d', $post->ID, $instances ),
     852                esc_url( $src )
     853        );
     854
     855        return apply_filters( 'audio_shortcode', $html, $src, $audio, $post );
     856}
     857add_shortcode( 'audio', 'wp_audio_shortcode' );
     858
     859/**
     860 * The Video shortcode.
     861 *
     862 * This implements the functionality of the Video Shortcode for displaying
     863 * WordPress mp4s in a post.
     864 *
     865 * @since 3.6.0
     866 *
     867 * @param array $attr Attributes of the shortcode.
     868 * @return string HTML content to display video.
     869 */
     870function wp_video_shortcode( $attr ) {
     871        global $content_width;
     872        $post = get_post();
     873
     874        static $instances = 0;
     875        $instances++;
     876
     877        $video = null;
     878
     879        extract( shortcode_atts( array(
     880                'src' => '',
     881                'width' => empty( $content_width ) ? 640 : $content_width,
     882                'height' => 360,
     883                'poster' => '',
     884                'webm' => '',
     885                'ogv' => '',
     886                'mov' => '',
     887                'wmv' => '',
     888                'flv' => '',
     889        ), $attr ) );
     890
     891        if ( empty( $src ) ) {
     892                $children = get_children( array(
     893                        'post_parent' => $post->ID,
     894                        'post_type' => 'attachment',
     895                        'post_mime_type' => 'video',
     896                        'posts_per_page' => 1
     897                ) );
     898
     899                if ( empty( $children ) )
     900                        return;
     901
     902                $video = reset( $children );
     903                $src = wp_get_attachment_url( $video->ID );
     904                if ( empty( $src ) )
     905                        return;
     906        }
     907
     908        wp_enqueue_style( 'wp-mediaelement' );
     909        wp_enqueue_script( 'wp-mediaelement' );
     910
     911        $atts = array(
     912                sprintf( 'class="%s"', apply_filters( 'video_shortcode_class', 'wp-video-shortcode' ) ),
     913                sprintf( 'id="video-%d-%d"', $post->ID, $instances ),
     914                sprintf( 'width="%d"', $width ),
     915                sprintf( 'height="%d"', $height ),
     916        );
     917
     918        if ( ! empty( $poster ) )
     919                $atts[] = sprintf( 'poster="%s"', esc_url( $poster ) );
     920
     921        $source = '<source type="%s" src="%s" />';
     922
     923        $html = sprintf( '<video %s controls="controls" preload="none">', join( ' ', $atts ) );
     924
     925        foreach ( array( 'src', 'webm', 'ogv', 'mov', 'wmv', 'flv' ) as $fallback ) {
     926                if ( ! empty( $$fallback ) ) {
     927                        $type = wp_check_filetype( $$fallback );
     928                        $html .= sprintf( $source, $type['type'], $$fallback );
     929                }
     930        }
     931
     932        $html .= '</video>';
     933
     934        return apply_filters( 'video_shortcode', $html, $src, $video, $post );
     935}
     936add_shortcode( 'video', 'wp_video_shortcode' );
     937
     938/**
    806939 * Display previous image link that has the same post parent.
    807940 *
    808941 * @since 2.5.0
  • wp-includes/script-loader.php

    diff --git wp-includes/script-loader.php wp-includes/script-loader.php
    index d8c4f7d..4201612 100644
    function wp_default_scripts( &$scripts ) { 
    274274
    275275        $scripts->add( 'imgareaselect', "/wp-includes/js/imgareaselect/jquery.imgareaselect$suffix.js", array('jquery'), '0.9.8', 1 );
    276276
     277        $scripts->add( 'mediaelement', "/wp-includes/js/mediaelement/mediaelement-and-player$suffix.js", array('jquery'), '2.10.1', 1 );
     278        $scripts->add( 'wp-mediaelement', "/wp-includes/js/mediaelement/wp-mediaelement.js", array('mediaelement'), false, 1 );
     279
    277280        $scripts->add( 'password-strength-meter', "/wp-admin/js/password-strength-meter$suffix.js", array('jquery'), false, 1 );
    278281        did_action( 'init' ) && $scripts->localize( 'password-strength-meter', 'pwsL10n', array(
    279282                'empty' => __('Strength indicator'),
    function wp_default_styles( &$styles ) { 
    538541        $styles->add( 'media-views', "/wp-includes/css/media-views$suffix.css", array( 'buttons' ) );
    539542        $styles->add( 'buttons', "/wp-includes/css/buttons$suffix.css" );
    540543
     544        $styles->add( 'mediaelement', "/wp-includes/js/mediaelement/mediaelementplayer$suffix.css" );
     545        $styles->add( 'wp-mediaelement', "/wp-includes/js/mediaelement/wp-mediaelement.css", array( 'mediaelement' ) );
     546
    541547        foreach ( $rtl_styles as $rtl_style ) {
    542548                $styles->add_data( $rtl_style, 'rtl', true );
    543549                if ( $suffix && ! in_array( $rtl_style, $no_suffix ) )