/** * Retrieve a list of records and their corresponding tracks for use in Cue. * * @since 1.5.0 */ function audiotheme_ajax_get_playlist_records() { global $wpdb; $data = array(); $page = isset($_POST['paged']) ? absint($_POST['paged']) : 1; $posts_per_page = isset($_POST['posts_per_page']) ? absint($_POST['posts_per_page']) : 2; $records = new WP_Query(array('post_type' => 'audiotheme_record', 'post_status' => 'publish', 'posts_per_page' => $posts_per_page, 'paged' => $page, 'orderby' => 'title', 'order' => 'ASC')); if ($records->have_posts()) { foreach ($records->posts as $record) { $image = wp_get_attachment_image_src(get_post_thumbnail_id($record->ID), array(120, 120)); $data[$record->ID] = array('id' => $record->ID, 'title' => $record->post_title, 'artist' => get_audiotheme_record_artist($record->ID), 'release' => get_audiotheme_record_release_year($record->ID), 'thumbnail' => $image[0], 'tracks' => array()); } $tracks = $wpdb->get_results("SELECT p.ID, p.post_title, p2.ID AS record_id\r\n\t\t\tFROM {$wpdb->posts} p\r\n\t\t\tINNER JOIN {$wpdb->posts} p2 ON p.post_parent=p2.ID\r\n\t\t\tWHERE p.post_type='audiotheme_track' AND p.post_status='publish'\r\n\t\t\tORDER BY p.menu_order ASC"); if ($tracks) { foreach ($tracks as $track) { if (!isset($data[$track->record_id])) { continue; } $data[$track->record_id]['tracks'][] = array('id' => $track->ID, 'title' => $track->post_title); } } // Remove records that don't have any tracks. foreach ($data as $key => $item) { if (empty($item['tracks'])) { unset($data[$key]); } } } $send['maxNumPages'] = $records->max_num_pages; $send['records'] = array_values($data); wp_send_json_success($send); }
echo wp_get_attachment_image($thumbnail_id, 'record-thumbnail'); ?> </a> </p> <?php } ?> <header class="audiotheme-record-header entry-header"> <?php the_title('<h1 class="audiotheme-record-title entry-title" itemprop="name">', '</h1>'); ?> <?php if ($artist = get_audiotheme_record_artist()) { ?> <h2 class="audiotheme-record-artist" itemprop="byArtist"><?php echo esc_html($artist); ?> </h2> <?php } ?> <h3 class="audiotheme-record-subtitle"><a href="<?php echo esc_url(get_permalink($post->post_parent)); ?> "><em itemprop="inAlbum"><?php echo get_the_title($post->post_parent); ?>
/** * Display the artist name in the record archive loop. * * @since 1.1.0 * * @param int $post_id Post ID. */ function huesos_audiotheme_record_archive_grid_meta($post_id) { global $wp_query; if (!is_post_type_archive('audiotheme_record') || !$wp_query->is_main_query() || !in_the_loop()) { return; } printf('<p class="block-grid-item-meta">%s</p>', esc_html(get_audiotheme_record_artist($post_id))); }
<label for="record-year"><?php _e('Release Year', 'audiotheme'); ?> </label> <input type="text" name="release_year" id="record-year" value="<?php echo esc_attr(get_audiotheme_record_release_year($post->ID)); ?> " class="widefat"> </p> <p class="audiotheme-field"> <label for="record-artist"><?php _e('Artist', 'audiotheme'); ?> </label> <input type="text" name="artist" id="record-artist" value="<?php echo esc_attr(get_audiotheme_record_artist($post->ID)); ?> " class="widefat"> </p> <p class="audiotheme-field"> <label for="record-genre"><?php _e('Genre', 'audiotheme'); ?> </label> <input type="text" name="genre" id="record-genre" value="<?php echo esc_attr(get_audiotheme_record_genre($post->ID)); ?> " class="widefat"> </p> <table class="audiotheme-repeater" id="record-links">
<?php the_post_thumbnail('large'); ?> </a> </figure> <?php } ?> <header class="entry-header"> <?php the_title('<h1 class="entry-title" itemprop="name">', '</h1>'); ?> <?php if (!$has_sidebar && ($artist = get_audiotheme_record_artist())) { ?> <h2 class="entry-subtitle record-artist" itemprop="byArtist"><?php echo esc_html($artist); ?> </h2> <?php } ?> </header> <div class="entry-meta content-side"> <?php get_template_part('audiotheme/parts/record-meta', $record_type); ?> </div>