Keith Solomon 7887f7d9ce feature: Add reset-cache action to settings page
Adds a 'Reset cache' button to the Podcast RSS Import settings page that
clears the SimplePie feed-cache rows (both the cached XML and the
modification timestamp) plus the importer's per-feed import lock for the
configured feed. Multisite site-transient variants are also cleared.

Use this when the importer is skipping items or refusing to re-fetch a
feed that has changed at the source. The next 'Import now' click will
re-pull the XML from the network.

clear_feed_cache() is exposed as a public method so it is unit-testable,
and a do_action hook (rss2cpt_cache_cleared) lets other code react when
the cache is cleared. Two smoke tests pin down the expected option and
site-transient names, and a third ensures an empty feed URL is a no-op.
2026-08-24 11:05:16 -05:00
2026-08-24 08:46:51 -05:00
2026-08-24 08:46:51 -05:00
2026-08-24 08:46:51 -05:00
2026-08-24 08:46:51 -05:00
2026-08-24 08:46:51 -05:00
2026-08-24 08:46:51 -05:00
2026-08-24 08:46:51 -05:00
2026-08-24 08:46:51 -05:00
2026-08-24 08:46:51 -05:00
2026-08-24 08:46:51 -05:00
2026-08-24 08:48:40 -05:00
2026-08-24 08:46:51 -05:00
2026-08-24 08:46:51 -05:00

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

  1. Copy this directory into wp-content/plugins/podcast-rss-to-cpt.
  2. Activate Podcast RSS to CPT.
  3. Open Settings > Podcast RSS Import.
  4. Add the feed URL, select a target post type, and save.
  5. 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.

License

GPLv2 or later

S
Description
No description provided
Readme
119 KiB
Languages
PHP 100%