mirror of
https://github.com/Rushilwiz/dear-anon.git
synced 2025-04-22 04:49:51 -04:00
558 lines
18 KiB
PHP
558 lines
18 KiB
PHP
<?php
|
|
// powerpress-playlist.php
|
|
|
|
|
|
function powerpress_get_term_by_ttid($ttid)
|
|
{
|
|
global $wpdb;
|
|
$ttid = intval($ttid);
|
|
$term_info = $wpdb->get_results("SELECT term_id, taxonomy FROM {$wpdb->term_taxonomy} WHERE term_taxonomy_id = {$ttid} LIMIT 1", ARRAY_A);
|
|
if( empty( $term_info[0]['term_id']) )
|
|
return false;
|
|
|
|
$term_ID = $term_info[0]['term_id'];
|
|
$taxonomy_type = $term_info[0]['taxonomy'];
|
|
return get_term_by('id', $term_ID, $taxonomy_type);
|
|
}
|
|
|
|
function powepress_get_program_title_by_term_taxonomy_id($ttid)
|
|
{
|
|
$FeedSettings = powerpress_get_settings('powerpress_taxonomy_'.$ttid);
|
|
if( !empty($FeedSettings['title']) )
|
|
return $FeedSettings['title'];
|
|
return;
|
|
}
|
|
|
|
function powerpress_get_program_title_by_taxonomy($term_id, $taxonomy = 'category')
|
|
{
|
|
$General = get_option('powerpress_general');
|
|
// Efficiently get the taxonomy program titles from WordPress
|
|
if( !isset($GLOBALS['powerpress'][$taxonomy]) )
|
|
{
|
|
$GLOBALS['powerpress'][$taxonomy] = array();
|
|
|
|
// SELECT all the caegory podcasting / taxonomy podasting feeds...
|
|
|
|
if( $taxonomy == 'category' && isset($General['custom_cat_feeds']) )
|
|
{
|
|
$Feeds = $General['custom_cat_feeds'];
|
|
// Walk through the categories...
|
|
foreach( $Feeds as $null=> $cat_id )
|
|
{
|
|
$FeedSettings = get_option('powerpress_cat_feed_'.$cat_id);
|
|
if( !empty($FeedSettings['title']) )
|
|
$GLOBALS['powerpress'][$taxonomy][ $cat_id ] = $FeedSettings['title'];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$PowerPressTaxonomies = get_option('powerpress_taxonomy_podcasting');
|
|
if( !empty($PowerPressTaxonomies) )
|
|
{
|
|
$query_in = '';
|
|
foreach( $PowerPressTaxonomies as $tt_id=> $null )
|
|
{
|
|
if( !empty($query_in) )
|
|
$query_in .= ',';
|
|
$query_in .= $tt_id;
|
|
}
|
|
|
|
if( !empty($query_in) )
|
|
{
|
|
$terms = $wpdb->get_results("SELECT term_taxonomy_id, term_id, taxonomy FROM {$wpdb->term_taxonomy} WHERE term_taxonomy_id IN ($query_in)", ARRAY_A);
|
|
|
|
foreach( $terms as $index=> $term_info )
|
|
{
|
|
// TODO: We need to get term by the term_id and taxonomy
|
|
$FeedSettings = powerpress_get_settings('powerpress_taxonomy_'.$term_info['term_taxonomy_id']);
|
|
if( !empty($FeedSettings['title']) )
|
|
$GLOBALS['powerpress'][ $term_info['taxonomy'] ][ $term_info['term_id'] ] = $FeedSettings['title'];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if( !empty($GLOBALS['powerpress'][$taxonomy][$term_id]) )
|
|
return $GLOBALS['powerpress'][$taxonomy][$term_id];
|
|
if( !empty($General['program_title']) )
|
|
return $General['program_title']; // Get the default podcast title
|
|
return ''; // REturn the blog title last resort
|
|
}
|
|
|
|
function powerpress_get_title_by_post_type($post_type, $slug='podcast')
|
|
{
|
|
|
|
}
|
|
|
|
function powerpress_playlist_episodes($args)
|
|
{
|
|
global $wpdb;
|
|
$return = array();
|
|
|
|
$defaults = array(
|
|
'limit' => 10,
|
|
'slug' => 'podcast',
|
|
'post_type'=>'post',
|
|
'category'=>'',
|
|
'taxonomy'=>'',
|
|
'tax_term'=>'',
|
|
'term_taxonomy_id'=>'',
|
|
'ids'=>'',
|
|
'order'=>''
|
|
);
|
|
$args = wp_parse_args( $args, $defaults );
|
|
|
|
/* handle taxonomy and post id's*/
|
|
if( empty($args['taxonomy']) && empty($args['tax_term']) && !empty($args['category']) )
|
|
{
|
|
$args['taxonomy'] = 'category';
|
|
$args['tax_term'] = $args['category'];
|
|
}
|
|
|
|
$TaxonomyObj = false;
|
|
if( !empty($args['term_taxonomy_id']) )
|
|
{
|
|
$TaxonomyObj = powerpress_get_term_by_ttid( $args['term_taxonomy_id'] );
|
|
}
|
|
|
|
if( empty($TaxonomyObj) && !empty($args['taxonomy']) && !empty($args['tax_term']) )
|
|
{
|
|
if( preg_match('/^[0-9]*$/', $args['tax_term']) ) // If it is a numeric ID, lets try finding it by ID first...
|
|
$TaxonomyObj = get_term_by('id', $args['tax_term'], $args['taxonomy']);
|
|
if( empty($TaxonomyObj) )
|
|
$TaxonomyObj = get_term_by('name', $args['tax_term'], $args['taxonomy']);
|
|
if( empty($TaxonomyObj) )
|
|
$TaxonomyObj = get_term_by('slug', $args['tax_term'], $args['taxonomy']);
|
|
}
|
|
|
|
// Start the SQL query
|
|
$query = "SELECT p.ID, p.post_title, p.post_date, pm.meta_value ";
|
|
$query .= "FROM {$wpdb->posts} AS p ";
|
|
$query .= apply_filters( 'powerpress_join', "INNER JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id " );
|
|
|
|
if( !empty($TaxonomyObj->term_taxonomy_id) )
|
|
$query .= "INNER JOIN {$wpdb->term_relationships} AS tr ON p.ID = tr.object_id ";
|
|
|
|
$query .= apply_filters( 'powerpress_where', "WHERE (pm.meta_key = %s) " );
|
|
$query .= "AND p.post_type = %s ";
|
|
$query .= "AND p.post_status = 'publish' ";
|
|
if( !empty($TaxonomyObj->term_taxonomy_id) ) {
|
|
$query .= "AND tr.term_taxonomy_id = '". $TaxonomyObj->term_taxonomy_id ."' ";
|
|
}
|
|
if ( apply_filters( 'wpml_setting', false, 'setup_complete' ) ) {
|
|
add_filter( 'powerpress_join', function( $join ) {
|
|
global $wpdb;
|
|
|
|
$join .= "JOIN {$wpdb->prefix}icl_translations ON element_type = CONCAT('post_', p.post_type) AND element_id = p.ID ";
|
|
|
|
return $join;
|
|
} );
|
|
add_filter( 'powerpress_where', function( $where ) {
|
|
$lang = apply_filters( 'wpml_current_language', false );
|
|
$where .= "AND language_code = '$lang' ";
|
|
|
|
return $where;
|
|
} );
|
|
}
|
|
|
|
$for_query = '';
|
|
if( !empty( $args['ids'] ) ) {
|
|
// First santity check make sure we are only working with numbers....
|
|
if( preg_match('/^[0-9,\s]*$/', $args['ids']) ) {
|
|
$ids = explode(',', preg_replace('/(\s)/', '', $args['ids']) );
|
|
foreach( $ids as $index=> $id ) {
|
|
if( empty($id) )
|
|
continue;
|
|
if( !empty($for_query) )
|
|
$for_query .= ', ';
|
|
$for_query .= $id;
|
|
}
|
|
|
|
if( !empty($for_query) ) {
|
|
$query .= "AND p.ID IN ($for_query) ";
|
|
}
|
|
}
|
|
}
|
|
|
|
$query .= "GROUP BY p.ID ";
|
|
if( !empty($for_query) ) {
|
|
$query .= "ORDER BY FIELD('id', $for_query) ";
|
|
} else if ( !empty($args['order']) && strtolower($args['order']) == 'asc' ) {
|
|
$query .= "ORDER BY p.post_date ASC ";
|
|
} else {
|
|
$query .= "ORDER BY p.post_date DESC ";
|
|
}
|
|
$query .= "LIMIT 0, %d";
|
|
|
|
$query = $wpdb->prepare($query, ($args['slug'] == 'podcast'?'enclosure': '_'.$args['slug'].':enclosure'), $args['post_type'], $args['limit'] );
|
|
$results_data = $wpdb->get_results($query, ARRAY_A);
|
|
if( $results_data )
|
|
{
|
|
foreach( $results_data as $null=> $row )
|
|
{
|
|
if( empty($row['meta_value']) )
|
|
continue;
|
|
|
|
$EnclosureData = powerpress_get_enclosure_data($row['ID'], $args['slug'], $row['meta_value']);
|
|
$return[ $row['ID'] ] = array();
|
|
$return[ $row['ID'] ]['ID'] = $row['ID'];
|
|
$return[ $row['ID'] ]['post_title'] = $row['post_title'];
|
|
$return[ $row['ID'] ]['post_date'] = $row['post_date'];
|
|
$return[ $row['ID'] ]['enclosure'] = $EnclosureData;
|
|
}
|
|
}
|
|
return $return;
|
|
}
|
|
|
|
/**
|
|
* Output the templates used by playlists.
|
|
*
|
|
*/
|
|
function powerpress_underscore_playlist_templates() {
|
|
?>
|
|
<script type="text/html" id="tmpl-wp-playlist-current-item">
|
|
<# if ( data.poster ) { #>
|
|
<img src="{{ data.poster.src }}" />
|
|
<# } #>
|
|
<div class="wp-playlist-caption">
|
|
<# if ( data.meta.program_title ) { #>
|
|
<span class="wp-playlist-item-meta wp-playlist-item-title">{{ data.meta.program_title }}</span>
|
|
<# } #>
|
|
<# if ( data.meta.link ) { #>
|
|
<span class="wp-playlist-item-meta wp-playlist-item-title"><a href="{{ data.meta.link }}" rel="nofollow">{{ data.title }}</a></span>
|
|
<# } else if ( data.title ) { #>
|
|
<span class="wp-playlist-item-meta wp-playlist-item-title">{{ data.title }}</span>
|
|
<# } #>
|
|
<# if ( data.meta.date ) { #><span class="wp-playlist-item-meta wp-playlist-item-artist">{{ data.meta.date }}</span><# } #>
|
|
<# if ( data.meta.itunes_subtitle ) { #><span class="wp-playlist-item-meta wp-playlist-item-album">{{ data.meta.itunes_subtitle }}</span><# } #>
|
|
</div>
|
|
</script>
|
|
<script type="text/html" id="tmpl-wp-playlist-item">
|
|
<div class="wp-playlist-item">
|
|
<a class="wp-playlist-caption" href="{{ data.src }}">
|
|
<!-- <span class="wp-playlist-item-title">“{{{ data.title }}}”</span> -->
|
|
<# if ( data.title ) { #>
|
|
<span class="wp-playlist-item-title">{{ data.title }}</span>
|
|
<# } #>
|
|
<# if ( data.meta.date ) { #>
|
|
<span class="wp-playlist-item-artist"> — {{ data.meta.date }}</span>
|
|
<# } #>
|
|
</a>
|
|
<# if ( data.meta.length_formatted ) { #>
|
|
<div class="wp-playlist-item-length">{{ data.meta.length_formatted }}</div>
|
|
<# } #>
|
|
</div>
|
|
</script>
|
|
<?php
|
|
}
|
|
|
|
/**
|
|
* Output and enqueue default scripts and styles for playlists.
|
|
*
|
|
* @since 6.0
|
|
*
|
|
* @param string $type Type of playlist. Accepts 'audio' or 'video'.
|
|
*/
|
|
function powerpress_playlist_scripts( $type ) {
|
|
wp_enqueue_style( 'wp-mediaelement' ); // Use the playlist built into WordPress
|
|
wp_enqueue_script( 'wp-playlist' ); // Use the playlist built into WordPress
|
|
?>
|
|
<!--[if lt IE 9]><script>document.createElement('<?php echo esc_js( $type ) ?>');</script><![endif]-->
|
|
<?php
|
|
add_action( 'wp_footer', 'powerpress_underscore_playlist_templates', 0 );
|
|
add_action( 'admin_footer', 'powerpress_underscore_playlist_templates', 0 );
|
|
}
|
|
add_action( 'powerpress_playlist_scripts', 'powerpress_playlist_scripts' );
|
|
|
|
/**
|
|
* The playlist shortcode.
|
|
*
|
|
* This implements the functionality of the playlist shortcode for displaying
|
|
* a collection of podcast episodes in a post.
|
|
*
|
|
* @since 6.0
|
|
*
|
|
* @param array $attr Playlist shortcode attributes.
|
|
* @return string Playlist output. Empty string if the passed type is unsupported.
|
|
*/
|
|
function powerpress_playlist_shortcode( $attr ) {
|
|
global $content_width;
|
|
|
|
if ( is_feed() ) {
|
|
return '';
|
|
}
|
|
|
|
static $instance = 0;
|
|
$instance++;
|
|
|
|
/*
|
|
if ( ! empty( $attr['ids'] ) ) {
|
|
// 'ids' is explicitly ordered, unless you specify otherwise.
|
|
if ( empty( $attr['orderby'] ) ) {
|
|
$attr['orderby'] = 'post__in';
|
|
}
|
|
$attr['include'] = $attr['ids'];
|
|
}
|
|
*/
|
|
|
|
|
|
extract( shortcode_atts( array(
|
|
'type' => 'audio', // Already defined by the first episode type
|
|
'style' => 'light', /* */
|
|
'tracklist' => true, /* always true */
|
|
'tracknumbers' => true, /* always false for podcasting */
|
|
'images' => true, // Used for PowerPress Playlist
|
|
'image' => '', // Used for PowerPress Playlist (specific image URL for default poster artwork
|
|
'artists' => true, // display the artist / author / talent name (Future use)
|
|
'itunes_subtitle'=>false,
|
|
'category'=>'', // Used for PowerPress Playlist (specify category ID, name or slug)
|
|
'term_id'=>'', // Used for PowerPress Playlist (specify term ID, name or slug)
|
|
'taxonomy'=>'', // Used for PowerPress Playlist (specify taxonomy name)
|
|
'term_taxonomy_id'=>'', // Used for PowerPress Playlist (specify term_taxonomy_id)
|
|
'program_titles_by_taxonomy'=>'', // e.g. category
|
|
'date' => true, // Display the date
|
|
'title' => true, // Dislay the title of episode
|
|
'links'=>true, // Link to episode page
|
|
'slug' => '', // Used for PowerPress Playlist
|
|
'feed' => '', // Used for PowerPress Playlist
|
|
'channel'=>'', // Used for PowerPress Playlist
|
|
'post_type' => 'post', // Used for PowerPress Playlist
|
|
'limit'=>10, // Used for PowerPress Playlist
|
|
'ids'=>'', // Used to specify specific post ids to assemble a player with specific episodes
|
|
'order'=>'' // Order of episodes, descending by default
|
|
), $attr, 'powerpressplaylist' ) );
|
|
|
|
|
|
if ( $type !== 'audio' ) {
|
|
$type = 'video';
|
|
}
|
|
|
|
|
|
$tracknumbers = false;
|
|
//$images = true;
|
|
$artists = true; // Program title
|
|
|
|
$images = filter_var( $images, FILTER_VALIDATE_BOOLEAN );
|
|
$links = filter_var( $links, FILTER_VALIDATE_BOOLEAN );
|
|
$itunes_subtitle = filter_var( $itunes_subtitle, FILTER_VALIDATE_BOOLEAN );
|
|
$episode_title = filter_var( $title, FILTER_VALIDATE_BOOLEAN );
|
|
$date = filter_var( $date, FILTER_VALIDATE_BOOLEAN );
|
|
|
|
if( empty($slug) && !empty($feed) )
|
|
$slug = $feed;
|
|
if( empty($slug) && !empty($channel) )
|
|
$slug = $channel;
|
|
if( empty($slug) )
|
|
$slug = 'podcast';
|
|
|
|
$args = array(
|
|
'limit' => $limit,
|
|
'slug' => $slug,
|
|
'post_type'=>$post_type,
|
|
'category'=>$category,
|
|
'term_id'=>'',
|
|
'taxonomy'=>'',
|
|
'term_taxonomy_id'=>$term_taxonomy_id,
|
|
'ids'=>$ids,
|
|
'order'=>$order
|
|
);
|
|
|
|
$episodes = powerpress_playlist_episodes( $args );
|
|
|
|
if ( empty( $episodes ) ) {
|
|
return '';
|
|
}
|
|
|
|
$ProgramSettings = false;
|
|
// Get Podcast Settings...ssss
|
|
if( !empty($post_type) )
|
|
{
|
|
$PostTypeSettingsArray = get_option('powerpress_posttype_'.$post_type);
|
|
if( isset($PostTypeSettingsArray[ $slug ]) && is_array($PostTypeSettingsArray[ $slug ] ) )
|
|
{
|
|
$ProgramSettings = $PostTypeSettingsArray[ $slug ];
|
|
}
|
|
}
|
|
if( !empty($slug) && !$ProgramSettings )
|
|
$ProgramSettings = get_option('powerpress_feed_'.$slug);
|
|
if( !empty($term_taxonomy_id) && !$ProgramSettings )
|
|
$ProgramSettings = get_option('powerpress_taxonomy_'.$term_taxonomy_id);
|
|
if( empty($ProgramSettings) )
|
|
$ProgramSettings = get_option('powerpress_general');
|
|
|
|
$outer = 22; // default padding and border of wrapper
|
|
|
|
$default_width = 640;
|
|
$default_height = 360;
|
|
|
|
$theme_width = empty( $content_width ) ? $default_width : ( $content_width - $outer );
|
|
$theme_height = empty( $content_width ) ? $default_height : round( ( $default_height * $theme_width ) / $default_width );
|
|
|
|
$data = compact( 'type' );
|
|
|
|
if( !empty($images) && empty($image) ) // If they specified images but did not specify a specific image in the shortcode...
|
|
{
|
|
if( !empty($ProgramSettings['rss2_image']) )
|
|
$image = $ProgramSettings['rss2_image'];
|
|
else if( !empty($ProgramSettings['itunes_image']) )
|
|
$image = $ProgramSettings['itunes_image'];
|
|
}
|
|
|
|
// don't pass strings to JSON, will be truthy in JS
|
|
// foreach ( array( 'tracklist', 'tracknumbers', 'images', 'artists' ) as $key ) {
|
|
foreach ( array( 'tracklist', 'tracknumbers', 'images', 'artists', 'date', 'itunes_subtitle' ) as $key ) {
|
|
$data[$key] = filter_var( $$key, FILTER_VALIDATE_BOOLEAN );
|
|
}
|
|
|
|
// Set a global poster image
|
|
if( !empty($image) ) {
|
|
$data['poster'] = array( 'src'=>$image, 'width'=>'144', 'height'=>'144' );
|
|
}
|
|
|
|
$tracks = array();
|
|
foreach ( $episodes as $episode ) {
|
|
//$url = wp_get_attachment_url( $attachment->ID );
|
|
$url = $episode['enclosure']['url'];
|
|
//$ftype = wp_check_filetype( $url, wp_get_mime_types() );
|
|
$track = array(
|
|
'src' => $url,
|
|
'type' => $episode['enclosure']['type'],
|
|
'title' => $episode['post_title'],
|
|
'caption' => $episode['post_title'],
|
|
'description' => $episode['post_title']
|
|
);
|
|
|
|
if( empty($episode_title) ) {
|
|
$track['title'] = '';
|
|
}
|
|
|
|
//$image = false;
|
|
$episode_image = $image;
|
|
if( $images && !empty($episode['enclosure']['image']) )
|
|
{
|
|
$episode_image = $episode['enclosure']['image'];
|
|
}
|
|
else if( $images && !empty($episode['enclosure']['itunes_image']) )
|
|
{
|
|
$episode_image = $episode['enclosure']['itunes_image'];
|
|
}
|
|
// enclosure
|
|
|
|
$track['meta'] = array();
|
|
|
|
$track['meta']['artist'] = ('Talent Name'); // TODO
|
|
$track['meta']['album'] = ('Podcast Title here'); // TODO
|
|
if( $program_titles_by_taxonomy )
|
|
{
|
|
$ObjectTerms = wp_get_object_terms( $episode['ID'], $program_titles_by_taxonomy);
|
|
if(!empty($ObjectTerms) && !is_wp_error( $ObjectTerms ) && count($ObjectTerms) == 1 )
|
|
{
|
|
$track['meta']['program_title'] = powerpress_get_program_title_by_taxonomy($ObjectTerms[0]->term_id, $program_titles_by_taxonomy);
|
|
}
|
|
}
|
|
if( !empty($episode_title) )
|
|
$track['meta']['title'] = $episode['post_title'];
|
|
if( !empty($itunes_subtitle) && !empty($episode['enclosure']['subtitle']) )
|
|
$track['meta']['itunes_subtitle'] = $episode['enclosure']['subtitle'];
|
|
$track['meta']['genre'] = 'Podcast';
|
|
$track['meta']['year'] = mysql2date( 'Y', $episode['post_date'] ); // Episode year
|
|
if( !empty($date) )
|
|
$track['meta']['date'] = mysql2date( get_option( 'date_format' ), $episode['post_date'] );// Get episode date
|
|
$track['meta']['length_formatted'] = powerpress_readable_duration($episode['enclosure']['duration']); // $episode['enclosure']['duration'];
|
|
if( $track['meta']['length_formatted'] == '0:00' )
|
|
$track['meta']['length_formatted'] = ''; // Make it empty
|
|
if( !empty($links) )
|
|
$track['meta']['link'] = get_permalink( $episode['ID'] ); // 'http://www.google.com/';
|
|
|
|
if( $type == 'video' )
|
|
{
|
|
$track['dimensions'] = array(
|
|
'original' => array('width'=>'100%', 'height'=>'100%' ),
|
|
'resized' => array('width'=>'100%', 'height'=>'100%' )
|
|
);
|
|
}
|
|
/*
|
|
//$meta = wp_get_attachment_metadata( $attachment->ID );
|
|
$meta = false;
|
|
if ( ! empty( $meta ) ) {
|
|
|
|
foreach ( wp_get_attachment_id3_keys( $attachment ) as $key => $label ) {
|
|
if ( ! empty( $meta[ $key ] ) ) {
|
|
$track['meta'][ $key ] = $meta[ $key ];
|
|
}
|
|
}
|
|
|
|
if ( 'video' === $type ) {
|
|
if ( ! empty( $meta['width'] ) && ! empty( $meta['height'] ) ) {
|
|
$width = $meta['width'];
|
|
$height = $meta['height'];
|
|
$theme_height = round( ( $height * $theme_width ) / $width );
|
|
} else {
|
|
$width = $default_width;
|
|
$height = $default_height;
|
|
}
|
|
|
|
$track['dimensions'] = array(
|
|
'original' => compact( 'width', 'height' ),
|
|
'resized' => array(
|
|
'width' => $theme_width,
|
|
'height' => $theme_height
|
|
)
|
|
);
|
|
}
|
|
}
|
|
*/
|
|
|
|
if( !empty($episode_image) ) // !empty($image) )
|
|
{
|
|
$src = $episode_image;
|
|
$width = 144;
|
|
$height = 144;
|
|
if( $type == 'video' ) // image onlyl used for video
|
|
$track['image'] = array('src'=>$src, 'width'=>'100%', 'height'=>'100%');
|
|
//$track['thumb'] = compact( 'src', 'width', 'height' );
|
|
$track['poster'] = compact( 'src', 'width', 'height' );
|
|
}
|
|
|
|
$tracks[] = $track;
|
|
}
|
|
$data['tracks'] = $tracks;
|
|
|
|
$safe_type = esc_attr( $type );
|
|
$safe_style = esc_attr( $style );
|
|
|
|
ob_start();
|
|
|
|
if ( 1 === $instance ) {
|
|
do_action( 'powerpress_playlist_scripts', $type, $style );
|
|
} ?>
|
|
<div class="wp-playlist wp-<?php echo $safe_type ?>-playlist wp-playlist-<?php echo $safe_style ?>">
|
|
<?php if ( 'audio' === $type ): ?>
|
|
<div class="wp-playlist-current-item"></div>
|
|
<?php endif ?>
|
|
<<?php echo $safe_type ?> controls="controls" preload="none" width="<?php
|
|
echo (int) $theme_width;
|
|
?>"<?php if ( 'video' === $safe_type ):
|
|
echo ' height="', (int) $theme_height, '"';
|
|
endif; ?>></<?php echo $safe_type ?>>
|
|
<div class="wp-playlist-next"></div>
|
|
<div class="wp-playlist-prev"></div>
|
|
<noscript>
|
|
<ol><?php // TODO
|
|
//foreach ( $attachments as $att_id => $attachment ) {
|
|
// printf( '<li>%s</li>', wp_get_attachment_link( $att_id ) );
|
|
//}
|
|
?></ol>
|
|
</noscript>
|
|
<script type="application/json" class="wp-playlist-script"><?php echo json_encode( $data ) ?></script>
|
|
</div>
|
|
<?php
|
|
return ob_get_clean();
|
|
}
|
|
|
|
add_shortcode( 'podcastlist', 'powerpress_playlist_shortcode' );
|
|
add_shortcode( 'podcastplaylist', 'powerpress_playlist_shortcode' );
|
|
add_shortcode( 'powerpressplaylist', 'powerpress_playlist_shortcode' );
|
|
add_shortcode( 'powerpress_playlist', 'powerpress_playlist_shortcode' );
|