Skip to content

v1.7.0

Choose a tag to compare

@tannerm tannerm released this 03 Oct 03:22
e015e5c

Highlights

A feature release headlined by full-site migration, a rebuilt Speaker/Series/Service Type save path that fixes a family of assignment bugs, and podcast artwork that finally meets Apple's requirements.

📦 Full-Site Import/Export

Move an entire sermon library between sites in one step, under Tools → Import/Export → Full Migration:

  • Exports sermons (with variations, timestamps, transcripts and downloads), series, speakers, service types, templates, taxonomy terms, and optionally your plugin settings.
  • Imports run in small, resumable batches, so libraries with tens of thousands of sermons don't hit a PHP timeout.
  • Re-importing the same file updates existing content instead of duplicating it.
  • WP-CLI: wp cpl export / wp cpl import with --dry-run, --download-media, --include-settings, --match-by-slug and --batch-size — recommended for very large libraries.

🔧 Speaker / Series / Service Type assignments

The save path behind these fields has been rebuilt and hardened:

  • Assigning a Series or Speaker saves reliably even when the stored value already matches — sermons copied with a duplicator plugin can now be assigned the same Series/Speaker as the original.
  • Clearing the field actually removes the assignment.
  • A one-time cleanup runs on upgrade: orphaned associations are removed (the stray comma in speaker lists) and duplicated ones are collapsed (sermons double-listed in feeds and archives).
  • Re-saving a sermon with duplicate rows removes only the surplus row, never the one being kept.
  • When Service Types drive variations, saving the parent sermon no longer overwrites the service type that identifies each variation.
  • A save that doesn't include these fields (e.g. programmatic saves from custom code) no longer clears them.
  • WP All Import: a blank or unmatched Speaker/Series column no longer clears existing assignments — re-running a feed to refresh other fields leaves them intact. Comma-separated names in one column are matched individually.
  • Permanently deleting a Series now removes it from every sermon it contained.

🎙️ Podcast & Sync

  • Series, Speaker, and Service Type podcast feeds serve the full-size featured image for channel art (previously 600×600, below Apple Podcasts' 1400×1400 minimum, which got artwork rejected).
  • Sermon sync can set a sermon's service type and supply artwork for series and service types — an image chosen by hand is never overwritten.
  • Sermons with emoji in the title no longer fail to save on sites whose tables predate 4-byte character support.

▶️ Player

  • Listen starts playback on the first click, including Safari and iOS.
  • Video plays in the sermon's feature area again after audio has been played, instead of being pushed into the persistent player.
  • Embed audio (SoundCloud, Spotify, etc.) renders in the feature area again.

🧪 For developers

  • New PHPUnit harness: a WordPress-free unit suite (Brain Monkey) plus a WordPress integration suite. vendor/ has left version control — run composer install after pulling.

Upgrade Notice

A one-time cleanup runs automatically on upgrade to remove orphaned and duplicate Speaker/Series/Service Type associations. If you use WP All Import, note the behavior change: a blank or unmatched Speaker/Series column no longer clears existing assignments.

Full Changelog: 1.6.2...1.7.0