'Audios',
'singular_name' => 'Audio',
'add_new' => 'Add New Audio',
'add_new_item' => 'Add New Audio',
'edit_item' => 'Edit Audio',
'new_item' => 'New Audio',
'all_items' => 'All Audios',
'view_item' => 'View Audio',
'search_items' => 'Search Audios',
'not_found' => 'No audios found',
'not_found_in_trash' => 'No audios found in Trash',
'menu_name' => 'Audios'
);
$args = array(
'labels' => $labels,
'public' => false,
'show_ui' => true,
'supports' => array('title','editor'),
'menu_position' => 25,
'menu_icon' => 'dashicons-format-audio',
'has_archive' => false,
'capability_type' => 'post'
);
register_post_type('urdu_audio', $args);
}
// Register taxonomy for playlists
public function register_playlist_tax() {
$labels = array(
'name' => 'Playlists',
'singular_name' => 'Playlist',
'search_items' => 'Search Playlists',
'all_items' => 'All Playlists',
'edit_item' => 'Edit Playlist',
'update_item' => 'Update Playlist',
'add_new_item' => 'Add New Playlist',
'new_item_name' => 'New Playlist Name',
'menu_name' => 'Playlists'
);
register_taxonomy('urdu_playlist', array('urdu_audio'), array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array('slug' => 'urdu-playlist')
));
}
// Meta box for selecting audio file
public function add_audio_meta_box() {
add_meta_box('urdu_audio_file', 'Audio File', array($this, 'render_audio_meta_box'), 'urdu_audio', 'normal', 'high');
}
public function render_audio_meta_box($post) {
wp_nonce_field('urdu_audio_nonce', 'urdu_audio_nonce');
$attachment_id = get_post_meta($post->ID, '_urdu_audio_attachment_id', true);
$audio_url = '';
if ($attachment_id) {
$audio_url = wp_get_attachment_url($attachment_id);
}
?>
Select Audio from Media Library Remove
'; ?>
post_type == 'urdu_audio') { wp_enqueue_media(); wp_enqueue_script('urdu-audio-admin', plugin_dir_url(__FILE__) . 'admin.js', array('jquery'), '1.0', true); } } } public function frontend_assets() { wp_enqueue_style('urdu-audio-style', plugin_dir_url(__FILE__) . 'style.css'); wp_enqueue_script('urdu-audio-player', plugin_dir_url(__FILE__) . 'player.js', array('jquery'), '1.0', true); } public function shortcode_player($atts) { $atts = shortcode_atts(array('playlist' => ''), $atts, 'urdu_audio_player'); $args = array( 'post_type' => 'urdu_audio', 'posts_per_page' => -1, 'orderby' => 'title', 'order' => 'ASC' ); if (!empty($atts['playlist'])) { $args['tax_query'] = array(array( 'taxonomy' => 'urdu_playlist', 'field' => 'slug', 'terms' => sanitize_text_field($atts['playlist']) )); } $q = new WP_Query($args); $tracks = array(); if ($q->have_posts()) { while ($q->have_posts()) { $q->the_post(); $aid = get_post_meta(get_the_ID(), '_urdu_audio_attachment_id', true); $url = $aid ? wp_get_attachment_url($aid) : ''; $tracks[] = array( 'title' => get_the_title(), 'url' => $url, 'id' => get_the_ID() ); } wp_reset_postdata(); } wp_localize_script('urdu-audio-player', 'urduAudioData', array('tracks' => $tracks)); ob_start(); ?> '; } else { echo 'No file'; } } } } new Urdu_Audio_Player(); ?>