/** * 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)); }