Skip to content

ryan-gallagher/simple-rss-feed-poster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Simple RSS Feed Poster

A WordPress plugin that automatically creates daily or weekly digest posts from an RSS feed. Perfect for sharing bookmarked links, curated content, or any RSS-based link collection.

Features

  • Flexible scheduling: Choose specific days of the week and time to post (daily, weekdays only, weekly, etc.)
  • Alphabetical sorting of links for easy scanning (ignores leading "The", "A", "An")
  • Duplicate detection to prevent reposting (tracks last 500 links)
  • Minimum items threshold: Skip posting if not enough new links
  • Post header and footer: Add custom intro/outro text to each digest
  • Flexible link formatting:
    • Full link (Site Name: Article Title all linked)
    • Bold prefix (Site Name bold, Article Title linked)
    • Link only (just Article Title, no prefix)
  • Title cleanup tools:
    • Full string replacements for complex site names with colons
    • Prefix replacements for simple site name swaps
    • Auto-strip suspicious prefixes (hostnames, URL fragments)
    • HTML entity decoding and whitespace normalization
  • Post as draft or publish immediately
  • Live preview in the admin panel
  • Manual posting button for on-demand digest creation
  • Reliability features:
    • 30-second feed fetch timeout
    • Automatic retry (up to 3 attempts with 5-second delay)
    • Activity log showing last 15 events
    • Cache-busting to ensure fresh feed data

Installation

  1. Download simple-rss-feed-poster.php
  2. Create a folder called simple-rss-feed-poster in your /wp-content/plugins/ directory
  3. Upload the PHP file into that folder
  4. Activate through the WordPress Plugins menu
  5. Configure under Settings → Simple RSS Poster

Or zip the folder and upload via Plugins → Add New → Upload Plugin.

Configuration

Feed Settings

  • RSS Feed URL: The feed to pull links from
  • Base Post Title: Title prefix for posts (date is appended automatically)
  • Post Category: Which category to assign posts to
  • Post Status: Publish immediately or save as draft for review

Schedule

  • Days to Post: Select which days of the week to create digests. For a weekly digest, check only one day (e.g., Friday). Quick links for "Select All", "Select None", and "Weekdays Only".
  • Post Time: What time to create the post (uses your WordPress timezone)
  • Minimum Items: Skip posting if fewer than this many new items. Set to 0 to always post.

Link Formatting

Choose how each link appears in your digest:

Format Output
Full link Site Name: Article Title
Bold prefix Site Name: Article Title
Link only Article Title

Post Header: Optional text that appears before the list of links (HTML allowed). Example: "Here are some interesting links I found today:"

Post Footer: Optional text that appears after the list of links (HTML allowed). Example: "Found something interesting? Send it my way!"

Title Cleanup

Full String Replacements

For site names that contain colons, use full string matching. The plugin will find and replace the exact string anywhere in the title.

AFA: Animation For Adults : Animation News, Reviews, Articles, Podcasts and More => Animation for Adults
The Digital Bits - Bill Hunt's My Two Cents => The Digital Bits

Prefix Replacements

For simpler cases, replace just the prefix (text before the first : ). Leave the right side empty to remove the prefix entirely.

rss.livelink.threads-in-node => Microsoft 365 Blog
Blog on 1Password Blog => 1Password
(No title) =>
kottke.org => Jason Kottke

Auto-Strip Suspicious Prefixes

Enable this option to automatically remove prefixes that look like hostnames or URL fragments (contain dots but no spaces), even without an explicit rule.

Status & Activity Log

The settings page shows:

  • Next Scheduled Run: When the next automatic post will be created
  • Tracked Links: How many links are being tracked for duplicate detection (max 500)
  • Activity Log: Rolling log of the last 15 events including:
    • Successful posts (with item count and post ID)
    • Failed posts (with error message)
    • Skipped runs (below minimum threshold or no new items)
    • History resets

The activity log is color-coded by type (green for success, red for errors, yellow for warnings, blue for info) and can be cleared at any time.

Use Case: Feedbin → Pinboard → WordPress

This plugin was designed for a workflow where:

  1. You star articles in Feedbin
  2. An automation (IFTTT/Zapier) saves starred items to Pinboard with the format Site Name: Article Title
  3. This plugin pulls from your Pinboard RSS feed and creates a daily/weekly digest post

The title cleanup features help normalize inconsistent feed names from various sources.

WP-Cron Note

WordPress cron is "pseudo-cron" - it only runs when someone visits your site. For reliable scheduling on low-traffic sites, consider setting up a real system cron job:

*/15 * * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1

And disable WordPress's built-in pseudo-cron by adding to wp-config.php:

define('DISABLE_WP_CRON', true);

Changelog

2.3.2

  • Fixed: Duplicate success message display on manual post
  • Added: Auto-append timestamp to feed URL to prevent caching issues
  • Added: Sorting now ignores leading "The", "A", "An" articles
  • Added: Increased feed fetch timeout from 10 to 30 seconds
  • Added: Retry logic (up to 3 attempts with 5-second delay between)
  • Added: Activity log showing last 15 events (replaces single status line)

2.3.1

  • Fixed: Reduced RSS feed cache duration from 12 hours to 30 minutes so new items appear faster

2.3.0

  • Added: Post days selection (choose specific days for weekly/custom schedules)
  • Added: Minimum items threshold (skip posting if not enough new links)
  • Added: Post header and footer text options

2.2.0

  • Added: Full string replacements for complex site names with colons
  • Added: Post status setting (publish or draft)
  • Added: Link format setting (full link, bold prefix, or link only)
  • Fixed: Scheduled time display now shows correct timezone

2.1.0

  • Added: Title prefix replacement rules
  • Added: Option to auto-strip suspicious prefixes
  • Added: HTML entity decoding and whitespace normalization
  • Added: Empty/malformed entries are now skipped

2.0.0

  • Fixed: Cron now fires at configured time
  • Fixed: Duplicate tracking uses link-only approach
  • Fixed: Posted links array auto-prunes to prevent unbounded growth
  • Fixed: AJAX preview verifies nonce for security
  • Fixed: Feed errors log actual error message
  • Added: Category validation with fallback
  • Improved: Better error handling throughout

1.9.x

  • Initial public features: scheduled posting, preview, category selection

License

GPL v2 or later

Author

Ryan Gallagher

About

WordPress plugin that creates daily digest posts from an RSS feed

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages