{"id":305246,"date":"2026-05-16T16:57:50","date_gmt":"2026-05-16T16:57:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/newsforge-ai-auto-news-poster\/"},"modified":"2026-05-16T16:57:18","modified_gmt":"2026-05-16T16:57:18","slug":"arunai-auto-news-poster","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/arunai-auto-news-poster\/","author":23488596,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.8","stable_tag":"1.0.8","tested":"6.9.4","requires":"5.1","requires_php":"7.4","requires_plugins":null,"header_name":"ArunAI \u2013 Auto News Poster","header_author":"Arun Rajiah","header_description":"Auto-generate blog posts from the latest news using AI. Supports manual and automatic WP-Cron scheduling with optional DALL-E 3 featured image generation.","assets_banners_color":"111a2e","last_updated":"2026-05-16 16:57:18","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/arunrajiah\/ai-auto-news-poster","header_author_uri":"https:\/\/github.com\/arunrajiah","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.8":{"tag":"1.0.8","author":"arunrajiah","date":"2026-05-16 16:57:18"}},"upgrade_notice":{"1.0.8":"<p>Plugin renamed to &quot;RSS AI Post Generator&quot;. All features (scheduling, featured images, 30 posts per batch) are now fully free \u2014 no license key required.<\/p>","1.0.7":"<p>Adds automatic WP-Cron scheduling and DALL-E 3 featured image generation. No database migration required. New Automation settings section appears after upgrade.<\/p>","1.0.6":"<p>Maintenance release \u2014 fixes Plugin Check warnings and cleans up inline styles. No settings migration required.<\/p>","1.0.5":"<p>Important security update: API keys are now encrypted at rest. Existing plaintext keys will be re-encrypted on next settings save. Rate limiting and duplicate detection are also new in this release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3533928,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3533928,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3533928,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3534044,"resolution":"1","location":"assets","locale":"","width":2560,"height":1600},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3534044,"resolution":"2","location":"assets","locale":"","width":2560,"height":1600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3534044,"resolution":"3","location":"assets","locale":"","width":2560,"height":1600},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3534044,"resolution":"4","location":"assets","locale":"","width":2560,"height":1600}},"screenshots":{"1":"Main settings page with AI provider configuration","2":"RSS feed management with per-feed test button","3":"Live post generation with progress bar","4":"Statistics dashboard (total, today, week, month)","5":"Recent generated posts table with edit links"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,9614,1248,194533,850],"plugin_category":[],"plugin_contributors":[263180],"plugin_business_model":[],"class_list":["post-305246","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-auto-posting","plugin_tags-news","plugin_tags-openai","plugin_tags-rss","plugin_contributors-arunrajiah","plugin_committers-arunrajiah"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/arunai-auto-news-poster\/assets\/icon-128x128.png?rev=3533928","icon_2x":"https:\/\/ps.w.org\/arunai-auto-news-poster\/assets\/icon-256x256.png?rev=3533928","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/arunai-auto-news-poster\/assets\/screenshot-1.png?rev=3534044","caption":"Main settings page with AI provider configuration"},{"src":"https:\/\/ps.w.org\/arunai-auto-news-poster\/assets\/screenshot-2.png?rev=3534044","caption":"RSS feed management with per-feed test button"},{"src":"https:\/\/ps.w.org\/arunai-auto-news-poster\/assets\/screenshot-3.png?rev=3534044","caption":"Live post generation with progress bar"},{"src":"https:\/\/ps.w.org\/arunai-auto-news-poster\/assets\/screenshot-4.png?rev=3534044","caption":"Statistics dashboard (total, today, week, month)"}],"raw_content":"<!--section=description-->\n<p>ArunAI \u2013 Auto News Poster transforms the latest news articles into unique, engaging blog posts using OpenAI, Anthropic Claude, or any OpenAI-compatible API. Perfect for news sites, blogs, and content creators who want to stay on top of trending topics without the manual effort.<\/p>\n\n<p><strong>Key Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Multi-provider AI generation<\/strong> \u2014 OpenAI GPT, Anthropic Claude, or any OpenAI-compatible custom endpoint<\/li>\n<li><strong>WP-Cron scheduling<\/strong> \u2014 run generation automatically: hourly, every 6 hours, twice daily, or daily<\/li>\n<li><strong>DALL-E 3 featured images<\/strong> \u2014 automatically generate and attach editorial images to every post (OpenAI only)<\/li>\n<li><strong>RSS feed management<\/strong> \u2014 add, remove, and test feeds from the settings page; results cached for 30 minutes<\/li>\n<li><strong>Live progress UI<\/strong> \u2014 per-article generation with a progress bar and real-time status messages<\/li>\n<li><strong>Duplicate detection<\/strong> \u2014 already-posted articles are automatically skipped<\/li>\n<li><strong>AES-256 encrypted API keys<\/strong> \u2014 stored encrypted using a per-install key; never displayed again after saving<\/li>\n<li><strong>Draft-first workflow<\/strong> \u2014 all posts saved as drafts for your review before publishing<\/li>\n<li><strong>Source attribution<\/strong> \u2014 every post links back to the original news source<\/li>\n<li><strong>60-second rate limit<\/strong> \u2014 prevents accidental API overuse on manual generation<\/li>\n<li><strong>Customisable content<\/strong> \u2014 choose tone, word count, and post categories<\/li>\n<\/ul>\n\n<p><strong>How It Works:<\/strong><\/p>\n\n<ol>\n<li>Configure your AI provider and paste your API key<\/li>\n<li>Add RSS feeds from your favourite news sources (or use the built-in defaults: BBC, CNN, Reuters)<\/li>\n<li>Select categories and content preferences<\/li>\n<li><strong>Manual mode:<\/strong> click \"Generate 5 Posts\" \u2014 articles are fetched and generated one at a time with live feedback<\/li>\n<li><strong>Automatic mode:<\/strong> choose a schedule in Settings &gt; Automation and the plugin runs on its own<\/li>\n<li>Review the draft posts and publish what you like<\/li>\n<\/ol>\n\n<p><strong>Includes:<\/strong><\/p>\n\n<ul>\n<li>Manual generation of up to 30 posts per batch<\/li>\n<li>Automatic WP-Cron scheduling (hourly \/ every 6 h \/ twice daily \/ daily)<\/li>\n<li>DALL-E 3 featured image generation (OpenAI provider)<\/li>\n<li>OpenAI, Anthropic, and Custom API support<\/li>\n<li>RSS feed management with per-feed testing<\/li>\n<li>Duplicate detection<\/li>\n<li>Transient-cached feed fetching<\/li>\n<li>AES-256 API key encryption<\/li>\n<li>PHPUnit-tested, CI-verified codebase (39 tests)<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external services. By using this plugin you agree to these services' terms and privacy policies.<\/p>\n\n<p><strong>OpenAI API<\/strong> (required when LLM Provider is set to OpenAI)<\/p>\n\n<ul>\n<li>What is sent: article headline and summary text (from RSS feeds) to generate blog post content; the post title when DALL-E 3 image generation is enabled<\/li>\n<li>Why: to generate unique blog post content and, optionally, featured images using DALL-E 3<\/li>\n<li>Service URL: https:\/\/api.openai.com<\/li>\n<li>Privacy Policy: https:\/\/openai.com\/policies\/privacy-policy<\/li>\n<li>Terms of Service: https:\/\/openai.com\/policies\/terms-of-use<\/li>\n<\/ul>\n\n<p><strong>Anthropic API<\/strong> (required when LLM Provider is set to Anthropic)<\/p>\n\n<ul>\n<li>What is sent: article headline and summary text (from RSS feeds) to generate blog post content<\/li>\n<li>Why: to generate unique blog post content using Claude<\/li>\n<li>Service URL: https:\/\/api.anthropic.com<\/li>\n<li>Privacy Policy: https:\/\/www.anthropic.com\/privacy<\/li>\n<li>Terms of Service: https:\/\/www.anthropic.com\/legal\/consumer-terms<\/li>\n<\/ul>\n\n<p><strong>RSS Feeds<\/strong> (publicly available news sources)<\/p>\n\n<p>The plugin fetches articles from RSS feeds configured by the site administrator. The default built-in feeds are:<\/p>\n\n<ul>\n<li>BBC News \u2014 https:\/\/feeds.bbci.co.uk\/news\/rss.xml \u2014 Privacy: https:\/\/www.bbc.com\/privacy<\/li>\n<li>CNN \u2014 https:\/\/rss.cnn.com\/rss\/edition.rss \u2014 Privacy: https:\/\/www.cnn.com\/privacy<\/li>\n<li>Reuters \u2014 https:\/\/feeds.reuters.com\/reuters\/topNews \u2014 Privacy: https:\/\/www.thomsonreuters.com\/en\/privacy-statement.html<\/li>\n<\/ul>\n\n<p>What is sent: a standard HTTP GET request (no personal data, no cookies). The feed URLs are configurable \u2014 administrators can add, remove, or replace any feed.<\/p>\n\n<p>No data is transmitted to any external service without the site administrator explicitly configuring an API key and\/or feed URL in the plugin settings.<\/p>\n\n<h3>Support<\/h3>\n\n<ul>\n<li>Bug reports \/ feature requests: https:\/\/github.com\/arunrajiah\/ai-auto-news-poster\/issues<\/li>\n<li>Documentation: https:\/\/github.com\/arunrajiah\/ai-auto-news-poster<\/li>\n<\/ul>\n\n<h3>Privacy Policy<\/h3>\n\n<p>This plugin sends article headlines and summaries to your configured AI provider for content generation. Please review your provider's privacy policy:<\/p>\n\n<ul>\n<li>OpenAI: https:\/\/openai.com\/policies\/privacy-policy<\/li>\n<li>Anthropic: https:\/\/www.anthropic.com\/privacy<\/li>\n<\/ul>\n\n<p><strong>Data handling:<\/strong><\/p>\n\n<ul>\n<li>API keys are encrypted and stored in WordPress options \u2014 never transmitted except to your AI provider<\/li>\n<li>No personal user data is sent to AI providers<\/li>\n<li>Generated content is stored in your local WordPress database<\/li>\n<li>RSS feed URLs are stored in plugin settings<\/li>\n<li>The plugin logs errors locally (PHP <code>error_log<\/code>) for debugging<\/li>\n<\/ul>\n\n<h3>Third-Party Services<\/h3>\n\n<p><strong>AI Providers (requires API key and may incur costs):<\/strong><\/p>\n\n<ul>\n<li>OpenAI API \u2014 https:\/\/openai.com\/policies\/privacy-policy<\/li>\n<li>Anthropic API \u2014 https:\/\/www.anthropic.com\/privacy<\/li>\n<\/ul>\n\n<p><strong>Default RSS Feeds (publicly available, no registration required):<\/strong><\/p>\n\n<ul>\n<li>BBC News \u2014 https:\/\/www.bbc.com\/privacy<\/li>\n<li>CNN \u2014 https:\/\/www.cnn.com\/privacy<\/li>\n<li>Reuters \u2014 https:\/\/www.thomsonreuters.com\/en\/privacy-statement.html<\/li>\n<\/ul>\n\n<p>Users can add, remove, or replace these feeds at any time.<\/p>\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under GPL v2 or later. You are free to use, modify, and distribute it under the terms of that licence.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/arunai-auto-news-poster\/<\/code>, or install through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Go to <strong>Settings &gt; RSS AI Post Generator<\/strong>.<\/li>\n<li>Select your AI provider and enter your API key.<\/li>\n<li>Add RSS feed URLs (or use the built-in defaults).<\/li>\n<li>Click <strong>Generate 5 Posts<\/strong> to start creating content.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20ai%20providers%20are%20supported%3F\"><h3>What AI providers are supported?<\/h3><\/dt>\n<dd><p>OpenAI (GPT-3.5-turbo), Anthropic (Claude 3 Sonnet), and any OpenAI-compatible custom API endpoint (e.g. Ollama, LM Studio, OpenRouter).<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20api%20key%3F\"><h3>Do I need an API key?<\/h3><\/dt>\n<dd><p>Yes. You need a key from OpenAI, Anthropic, or your custom provider. The plugin does not include AI credits.<\/p><\/dd>\n<dt id=\"are%20the%20generated%20posts%20unique%3F\"><h3>Are the generated posts unique?<\/h3><\/dt>\n<dd><p>Yes. The AI is prompted to rewrite the article in its own words and explicitly told not to copy text from the source.<\/p><\/dd>\n<dt id=\"can%20i%20customise%20the%20generated%20content%3F\"><h3>Can I customise the generated content?<\/h3><\/dt>\n<dd><p>Yes \u2014 tone (neutral \/ professional \/ friendly), word count (short ~300 w \/ medium ~500 w \/ long ~800 w), and WordPress categories.<\/p><\/dd>\n<dt id=\"are%20posts%20published%20automatically%3F\"><h3>Are posts published automatically?<\/h3><\/dt>\n<dd><p>No. All posts are saved as drafts for you to review and edit before publishing, even when scheduled generation runs automatically.<\/p><\/dd>\n<dt id=\"how%20many%20posts%20can%20i%20generate%20at%20once%3F\"><h3>How many posts can I generate at once?<\/h3><\/dt>\n<dd><p>Up to 30 per batch (manual or scheduled).<\/p><\/dd>\n<dt id=\"why%20do%20i%20have%20to%20wait%2060%20seconds%20between%20manual%20batches%3F\"><h3>Why do I have to wait 60 seconds between manual batches?<\/h3><\/dt>\n<dd><p>To prevent accidental API overuse. The cooldown applies to manual generation only; scheduled runs are not rate-limited.<\/p><\/dd>\n<dt id=\"how%20does%20automatic%20scheduling%20work%3F\"><h3>How does automatic scheduling work?<\/h3><\/dt>\n<dd><p>Choose a schedule (Hourly \/ Every 6 Hours \/ Twice Daily \/ Daily) in Settings &gt; Automation and save. The plugin registers a WP-Cron event that fires generation automatically. The next run time is shown in the settings. WP-Cron requires incoming traffic \u2014 on low-traffic sites, set up a system cron to call <code>wp-cron.php<\/code> on a regular interval.<\/p><\/dd>\n<dt id=\"how%20much%20do%20dall-e%203%20images%20cost%3F\"><h3>How much do DALL-E 3 images cost?<\/h3><\/dt>\n<dd><p>Approximately $0.08 USD per image at the standard resolution (1792\u00d71024) on OpenAI's standard tier. Image generation only fires when the <strong>Featured Images<\/strong> option is enabled and the provider is OpenAI.<\/p><\/dd>\n<dt id=\"how%20are%20api%20keys%20stored%3F\"><h3>How are API keys stored?<\/h3><\/dt>\n<dd><p>Keys are encrypted with AES-256-CBC using a 32-byte key derived from your site's <code>wp_salt('auth')<\/code> value. They are never displayed in plaintext after saving.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20an%20article%20was%20already%20posted%3F\"><h3>What happens if an article was already posted?<\/h3><\/dt>\n<dd><p>The plugin checks its own tracking table (<code>wp_aanp_generated_posts<\/code>) and silently skips any source URL that has already been processed.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20secure%3F\"><h3>Is the plugin secure?<\/h3><\/dt>\n<dd><p>Yes. It follows WordPress security best practices: nonce verification, <code>manage_options<\/code> capability checks, <code>$wpdb-&gt;prepare()<\/code> for all queries, and output escaping throughout.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Renamed plugin to \"ArunAI \u2013 Auto News Poster\" per WordPress.org directory guidelines<\/li>\n<li>Removed all feature-gating code: no license checks, no locked functionality<\/li>\n<li>Removed get_max_posts_per_batch() and class-pro-features.php; all features fully available<\/li>\n<li>Fixed Plugin URI and support URLs to point to the correct GitHub repository<\/li>\n<li>Fixed Reuters privacy policy link (replaced 401 URL with working Thomson Reuters page)<\/li>\n<li>Removed \"free version\" comment from batch-size code<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>WP-Cron scheduling \u2014 new Automation section in settings; choose hourly \/ every 6 h \/ twice daily \/ daily; next-run time shown inline<\/li>\n<li>DALL-E 3 featured images \u2014 auto-generate and attach featured images for every post (OpenAI provider only, 1792\u00d71024)<\/li>\n<li>Fixed PHP 7.4 syntax incompatibility in class-image-generator.php (union return type)<\/li>\n<li>New classes: AANP_Scheduler, AANP_Image_Generator<\/li>\n<li>New tests: SchedulerTest, ImageGeneratorTest (39 tests total)<\/li>\n<li>Release workflow: rolling latest zip published on every push to main<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fixed all WordPress Plugin Check errors (i18n, escaping, missing translators comments)<\/li>\n<li>Removed all inline styles from admin templates; moved to admin.css<\/li>\n<li>Added semantic CSS classes for stat boxes and status indicators<\/li>\n<li>Corrected readme.txt stable tag<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>AES-256-CBC API key encryption with wp_salt('auth')-derived key<\/li>\n<li>60-second rate limiting between generation batches<\/li>\n<li>Two-phase AJAX generation flow with live progress bar<\/li>\n<li>Per-feed Test button (aanp_test_feed AJAX action)<\/li>\n<li>Custom API endpoint and model name settings<\/li>\n<li>Pro license key field with active\/inactive badge<\/li>\n<li>Duplicate post detection via dedicated tracking table with post meta fallback<\/li>\n<li>RSS feed transient cache (30-minute TTL)<\/li>\n<li>PHP 7.4 type hints across all classes<\/li>\n<li>GitHub Actions CI pipeline (PHP lint, PHPCS, PHPUnit)<\/li>\n<li>Full PHPUnit test suite (31 tests)<\/li>\n<\/ul>\n\n<h4>1.0.3 \u2013 1.0.4<\/h4>\n\n<ul>\n<li>Fixed WordPress i18n NonSingularStringLiteralText errors<\/li>\n<li>readme.txt stable tag corrections<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: OpenAI and Anthropic integration, RSS feed parsing, batch draft creation, admin settings UI<\/li>\n<\/ul>","raw_excerpt":"Auto-generate unique blog posts from the latest news using OpenAI, Claude, or any compatible AI. Supports scheduling, DALL-E 3 images, and RSS feeds.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/305246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=305246"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/arunrajiah"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=305246"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=305246"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=305246"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=305246"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=305246"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=305246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}