function wp_audio_shortcode
Script berikut berguna untuk mencegah link mp3 pada tag code diparse menjadi mp3 player.
function wp_audio_shortcode( $attr, $content = '' ) { $post_id = get_post() ? get_the_ID() : 0; static $instances = 0; $instances++; /** * Filter the default audio shortcode output. * * If the filtered output isn't empty, it will be used instead of generating the default audio template. * * @since 3.6.0 * * @param string $html Empty variable to be replaced with shortcode markup. * @param array $attr Attributes of the shortcode. @see wp_audio_shortcode() * @param string $content Shortcode content. * @param int $instances Unique numeric ID of this audio shortcode instance. */ $html = apply_filters( 'wp_audio_shortcode_override', '', $attr, $content, $instances ); if ( '' !== $html ) return $html; $audio = null; $default_types = wp_get_audio_extensions(); $defaults_atts = array( 'src' => '', 'loop' => '', 'autoplay' => '', 'preload' => 'none' ); foreach ( $default_types as $type ) $defaults_atts[$type] = ''; $atts = shortcode_atts( $defaults_atts, $attr, 'audio' ); extract( $atts ); $primary = false; if ( ! empty( $src ) ) { $type = wp_check_filetype( $src, wp_get_mime_types() ); if ( ! in_array( strtolower( $type['ext'] ), $default_types ) ) return sprintf( '<a class="wp-embedded-audio" href="%s">%s</a>', esc_url( $src ), esc_html( $src ) ); $primary = true; array_unshift( $default_types, 'src' ); } else { foreach ( $default_types as $ext ) { if ( ! empty( $$ext ) ) { $type = wp_check_filetype( $$ext, wp_get_mime_types() ); if ( strtolower( $type['ext'] ) === $ext ) $primary = true; } } } if ( ! $primary ) { $audios = get_attached_media( 'audio', $post_id ); if ( empty( $audios ) ) return; $audio = reset( $audios ); $src = wp_get_attachment_url( $audio->ID ); if ( empty( $src ) ) return; array_unshift( $default_types, 'src' ); } /** * Filter the media library used for the audio shortcode. * * @since 3.6.0 * * @param string $library Media library used for the audio shortcode. */ $library = apply_filters( 'wp_audio_shortcode_library', 'mediaelement' ); if ( 'mediaelement' === $library && did_action( 'init' ) ) { wp_enqueue_style( 'wp-mediaelement' ); wp_enqueue_script( 'wp-mediaelement' ); } /** * Filter the class attribute for the audio shortcode output container. * * @since 3.6.0 * * @param string $class CSS class or list of space-separated classes. */ $atts = array( 'class' => apply_filters( 'wp_audio_shortcode_class', 'wp-audio-shortcode' ), 'id' => sprintf( 'audio-%d-%d', $post_id, $instances ), 'loop' => $loop, 'autoplay' => $autoplay, 'preload' => $preload, 'style' => 'width: 100%; visibility: hidden;', ); // These ones should just be omitted altogether if they are blank foreach ( array( 'loop', 'autoplay', 'preload' ) as $a ) { if ( empty( $atts[$a] ) ) unset( $atts[$a] ); } $attr_strings = array(); foreach ( $atts as $k => $v ) { $attr_strings[] = $k . '="' . esc_attr( $v ) . '"'; } $html = ''; if ( 'mediaelement' === $library && 1 === $instances ) $html .= "<!--[if lt IE 9]><script>document.createElement('audio');</script><![endif]-->\n"; $html .= sprintf( '<audio %s controls="controls">', join( ' ', $attr_strings ) ); $fileurl = ''; $source = '<source type="%s" src="%s" />'; foreach ( $default_types as $fallback ) { if ( ! empty( $$fallback ) ) { if ( empty( $fileurl ) ) $fileurl = $$fallback; $type = wp_check_filetype( $$fallback, wp_get_mime_types() ); $url = add_query_arg( '_', $instances, $$fallback ); $html .= sprintf( $source, $type['type'], esc_url( $url ) ); } } if ( 'mediaelement' === $library ) $html .= wp_mediaelement_fallback( $fileurl ); $html .= '</audio>'; /** * Filter the audio shortcode output. * * @since 3.6.0 * * @param string $html Audio shortcode HTML output. * @param array $atts Array of audio shortcode attributes. * @param string $audio Audio file. * @param int $post_id Post ID. * @param string $library Media library used for the audio shortcode. */ $jangan = $attr['src']; if (preg_match("|<pre(.*)$jangan(.*)</pre>|siU",get_the_content())) { print_r($html); return $jangan; } else { return apply_filters( 'wp_audio_shortcode', $html, $atts, $audio, $post_id, $library ); } } add_shortcode( 'audio', 'wp_audio_shortcode' );
Facebook Comments
Leave a Reply