/**
  * Find all post_ids associated with this feed.
  * 
  * @return array
  */
 function post_ids()
 {
     global $wpdb;
     $allowed_status = array("publish");
     $allowed_status = apply_filters("podlove_feed_post_ids_allowed_status", $allowed_status);
     $sql = "\n\t\t\tSELECT\n\t\t\t\tp.ID\n\t\t\tFROM\n\t\t\t\t" . $wpdb->posts . " p\n\t\t\t\tINNER JOIN " . Episode::table_name() . " e ON e.post_id = p.ID\n\t\t\t\tINNER JOIN " . MediaFile::table_name() . " mf ON mf.`episode_id` = e.id\n\t\t\t\tINNER JOIN " . EpisodeAsset::table_name() . " a ON a.id = mf.`episode_asset_id`\n\t\t\tWHERE\n\t\t\t\ta.id = %d\n\t\t\t\tAND\n\t\t\t\tp.post_status IN (" . implode(',', array_map(function ($s) {
         return "'{$s}'";
     }, $allowed_status)) . ")\n\t\t\tORDER BY\n\t\t\t\tp.post_date DESC\n\t\t";
     return $wpdb->get_col($wpdb->prepare($sql, $this->episode_asset()->id));
 }
 public static function total_by_episode_id($episode_id, $start = null, $end = null)
 {
     global $wpdb;
     $sql = "\n\t\t\tSELECT\n\t\t\t\tCOUNT(*)\n\t\t\tFROM\n\t\t\t\t" . self::table_name() . " di\n\t\t\t\tINNER JOIN " . MediaFile::table_name() . " mf ON mf.id = di.media_file_id\n\t\t\tWHERE\n\t\t\t\tepisode_id = %d\n\t\t\t\tAND " . self::sql_condition_from_time_strings($start, $end) . "\n\t\t";
     return $wpdb->get_var($wpdb->prepare($sql, $episode_id));
 }