Make WordPress Core

Ticket #26210: 26210.patch

File 26210.patch, 1.6 KB (added by dimadin, 13 years ago)
  • wp-content/themes/twentyfourteen/inc/widgets.php

     
    8181                $content = get_transient( $this->id );
    8282
    8383                if ( false !== $content ) {
     84                        // Workaround for enqueuing MediaElement.js when using cached content
     85                        if ( get_transient( $this->id . '_mejs' ) ) {
     86                                wp_enqueue_style( 'wp-mediaelement' );
     87                                wp_enqueue_script( 'wp-mediaelement' );
     88                        }
     89
    8490                        echo $content;
    8591                        return;
    8692                }
     
    8894                ob_start();
    8995                extract( $args, EXTR_SKIP );
    9096
     97                // Check if MediaElement.js has been enqueued before loop
     98                $mediaelements_before = wp_script_is( 'wp-mediaelement' );
     99
    91100                $format = $instance['format'];
    92101                $number = empty( $instance['number'] ) ? 2 : absint( $instance['number'] );
    93102                $title  = apply_filters( 'widget_title', empty( $instance['title'] ) ? $this->format_strings[ $format ] : $instance['title'], $instance, $this->id_base );
     
    215224
    216225                endif; // End check for ephemeral posts.
    217226
     227                // Check if MediaElement.js has been enqueued after loop
     228                $mediaelements_after = wp_script_is( 'wp-mediaelement' );
     229
     230                // Set transient if MediaElement.js has been enqueued during loop
     231                if ( true === $mediaelements_after && false === $mediaelements_before ) {
     232                        set_transient( $this->id . '_mejs', true );
     233                }
     234
    218235                set_transient( $this->id, ob_get_flush() );
    219236        }
    220237
     
    249266         */
    250267        function flush_widget_cache() {
    251268                delete_transient( $this->id );
     269                delete_transient( $this->id . '_mejs' );
    252270        }
    253271
    254272        /**