Podcast RSS to CPT
Import a podcast RSS feed into a configurable WordPress custom post type.
Description
Podcast RSS to CPT imports existing and newly published podcast episodes using WordPress's bundled feed parser and WP-Cron. It can use the included Podcast Episode post type or any registered post type that supports the fields you need. Imports default to bounded batches of 25 new or changed episodes and automatically continue while scheduling is enabled.
Imported data includes the title, full synopsis, excerpt, publication date, episode page URL, enclosure/audio URL and type, duration, season, episode number, explicit flag, source identifiers, and episode artwork. Artwork can be added to the media library and assigned as the featured image.
Requirements
- WordPress 6.2+
- PHP 7.4+
Installation
- Copy this directory into
wp-content/plugins/podcast-rss-to-cpt. - Activate Podcast RSS to CPT.
- Open Settings > Podcast RSS Import.
- Add the feed URL, select a target post type, and save.
- Use Run import now for the initial import. WP-Cron will check for new or changed episodes on the selected schedule.
Imported Metadata
Themes and integrations can use these protected post meta keys:
| Key | Description |
|---|---|
_rss2cpt_source_id |
Feed-specific episode identifier |
_rss2cpt_source_key |
Deduplication fingerprint |
_rss2cpt_feed_url |
Source feed URL |
_rss2cpt_episode_url |
Episode page URL |
_rss2cpt_audio_url |
Enclosure/audio URL |
_rss2cpt_audio_type |
Audio MIME type |
_rss2cpt_audio_length |
Enclosure byte length |
_rss2cpt_duration |
Duration string (HH:MM:SS) |
_rss2cpt_duration_seconds |
Duration in seconds |
_rss2cpt_season |
Season number |
_rss2cpt_episode_number |
Episode number |
_rss2cpt_episode_type |
Episode type (full, trailer, bonus) |
_rss2cpt_explicit |
Explicit flag |
_rss2cpt_image_url |
Episode artwork URL |
_rss2cpt_creator |
Episode creator/author |
Episode fields are registered with types for the configured post type. Public fields are available through the WordPress REST API; internal deduplication fingerprints remain private.
Enable Refresh feed-owned fields if publisher changes should overwrite the imported title, synopsis, excerpt, date, status, author, metadata, and artwork. This option is off by default to preserve editorial changes.
Notes
WP-Cron runs when the site receives traffic. For reliable publishing schedules, invoke wp-cron.php from a real system cron.
Removing the plugin keeps imported posts and downloaded media but removes plugin settings.