=== Dynamic Post === Contributors: service2client Donate link: https://www.service2client.com/dynamic-post-donation Tags: blog financial articles content, CPA blog articles content, tax blog articles content, financial articles for my blog, accountant business articles content Requires at least: 5.8 Tested up to: 6.9.4 Stable tag: 8.7 License: GPLv2 or later, Contact sales@service2client.com for dual licensing options. License URI: https://www.gnu.org/licenses/gpl-2.0.html == Description == Dynamic Post automatically pulls fresh, high-quality articles from Dynamicontent.net, Grok AI, and RSS Feeds into your WordPress blog. Supports Free and Full API keys, shortcodes, RSS feeds, Grok AI content writer, and enhanced ADA formatting. **Version 8.7 New Features and Fixes** - News Article page placeholders ([DCARTICLELINK] and [DCS2CKEY]) now resolve automatically. - Shortcode cache-miss fallback: [dynamic-post] and [dynamic-posts] now fetch missing articles from the API on first request. - Trash-respect with clearer status: articles you move to the WordPress Trash will no longer be re-pulled from the API. - current_mon gate no longer locks out the month when a Post Articles run inserts zero new articles. - Shortcode alias resolution restored. cat="tax", cat="acct", cat="fin" and other API short codes now work. - User toggles (Auto Posting, Meta Data, Canonical, Content Image, Thumbnail Image) now persist across plugin upgrades. - Daily cron handler hardened to insert articles correctly on the 2nd of every month, - [dynamic-post_videos] shortcode improvements - Privacy improvements: API key and Grok AI key are no longer written to PHP error_log on routine operations. - Security Upgrades **Version 8.6 Features (still present)** - Grok AI Content Writer - Generate unlimited custom SEO-optimized articles directly from the plugin settings using Grok AI. - One-click article creation with length selection, category choice, and post status. - "Create New Category on the spot" - type a new category name and the plugin creates it automatically. - Grok articles are treated as normal custom content (no Dynamic Post disclaimer). - Full compatibility with Free and Full API keys (Grok tab grayed out on Free). - Grok AI Monthly Recurring Topic - automatically generates one article on the 2nd of each month. - Recurring articles remember your chosen Post Status (Draft / Pending Review / Publish). - Built-in 6-month limit per topic to prevent SEO duplicate content. - SEO Keywords field - Grok naturally includes your keywords each month. **Key Features** * Auto-pulls current month articles on the 2nd at 2 AM your time * Full API users get historical archive access and "Post From Start Date" * RSS Feed support (up to 5 feeds) with hot-linked images and weekly/monthly frequency control * Dynamic Content Install button for complete News & Tools section * Shortcodes work on any page or post, with cache-miss fallback for missed months * Free API shows all features grayed out with upgrade link * Safe API handling with circuit breaker (no endless loops if API is down) * Improved ADA compliance (image alt text and semantic markup) * Compatible with Yoast, Rank Math, and AIOSEO == Installation == 1. Upload the entire 'dynamic-post' folder to the '/wp-content/plugins/' directory, or install through the WordPress plugins screen. 2. Activate the plugin through the 'Plugins' screen in WordPress. 3. Enter your [Service2Client.com API key](https://shop.service2client.com/subscribe-now/all/dynamic-content/wordpress-content-seo-plugin-m.html) in Dynamic Post -> Settings (a Free API Key auto-installs on first activation). 4. Choose categories under Article Settings and click Post Articles. **What you get with the Full Version:** * Articles auto-post to your WordPress blog once a month on the 2nd at 2 AM your time. * Archive starting from when you purchased Full API (use "Post From Start Date" to backfill). * Shortcodes by Category and Archive (supports both full names and short aliases like "tax"). * Article images and videos fully visible. * Auto meta data, JSON-LD Schema Markup, and automatic image alt text for SEO. * SEO content pre-optimized for Yoast, Rank Math, and AIOSEO. * Custom CSS to style the look and design. * Grok AI Content Writer. * RSS Feed support - add up to 5 RSS feeds with Weekly/Monthly frequency and article limit (1-10). * Category Posting Settings table with API count, Blog count, Reads Now / Reads All page views, Start Date, and Post Version. * All current and past-month categories displayed. Engage with these categories: * Almost any topic with Grok AI * Tax News * General Business News * Financial Planning News * Accounting News * Technology News * Tip of the Month * Congress at Work * Request a new article topic for future consideration [Here](mailto:sales@service2client.com) * Order custom written articles [Here](https://shop.service2client.com/subscribe-now/all/dynamic-content/dc-trust-writer.html) * Search and order articles one at a time [Here](https://dynamicontent.net/) API keys are free or paid (Full). A [Service2Client.com Full API Key](https://shop.service2client.com/subscribe-now/all/dynamic-content/wordpress-content-seo-plugin-m.html) is required for all features. == Frequently Asked Questions == = Does this plugin work with the newest WordPress version and older versions? = Yes. Tested on WordPress 5.8 through 6.9.4. PHP 7.4, 8.0, 8.2, and 8.3 are all supported. = What is the API Pull Date? = Dynamic Post auto-pulls your selected article categories every month on the 2nd at 2 AM your time. The 2nd was chosen to avoid the busy 1st-of-month load on shared hosting. = How do I use the API Key? = The plugin Dashboard displays both API key types. Copy your key, paste it in the API Key field on the Common Settings tab, and click Save Changes. = What is the Free Key? = The Free Key shows only the current month's articles, with no images or videos. To accumulate articles over time with full image and video support for SEO, upgrade to the Full Version. = How do I display a single category in the front end? = Use the shortcode `[dynamic-post cat="your_category_name"]` on any page or post. Short aliases also work, for example `[dynamic-post cat="tax"]`. = How do I display a specific archive month? = Use `[dynamic-posts cat="your_category_name" month="month_name" year="year"]`, for example `[dynamic-posts cat="tax" month="jan" year="2024"]`. If the article is not yet cached, Dynamic Post will fetch it from the API on the first request. = How do I display videos? = Use `[dynamic-post_videos cat="tax" limit="20"]`. The shortcode renders a list of video titles, dates, and embedded Vimeo iframes from any category that has video content. = How do I remove an article? = Move the article to the WordPress Trash. Dynamic Post respects the Trash and will not re-pull the article from the API. To permanently remove and re-import, delete the article from the Trash. The next Post Articles run will fetch a fresh copy. = How do I use Custom CSS? = The Custom CSS field is available on the Common Settings tab for Full API users. Write your CSS, click Save Changes, and the CSS is injected into the page head. == Screenshots == 1. Dynamic Post - common settings 2. Dynamic Post - article settings 3. Dynamic Post - archives 4. Dynamic Post - help options 5. Dynamic Post - demo front-end blog summary 6. Dynamic Post - demo front-end blog individual article 7. Dynamic Post - demo front-end blog list article 8. Dynamic Post - demo front-end widget list articles via shortcodes 9. Dynamic Post - demo front-end slider widget using shortcodes 10. Dynamic Post - SEO meta tags and images settings == Changelog == = 8.7 = *Release Date - May 2026* Bug fixes and feature additions, no breaking changes. * News Article placeholders [DCARTICLELINK] and [DCS2CKEY] now resolve inside Dynamic Post. The separate MyCustomFunctions plugin is no longer required. * dcarticleid query var is now registered by Dynamic Post so URLs like /news-article/?dcarticleid=2301 work correctly. * Shortcode cache-miss fallback: [dynamic-post] and [dynamic-posts] fetch missing articles from the API on first request and cache them. * Trash respect: articles moved to WordPress Trash are not re-pulled from the API. Progress panel now shows "in trash" distinctly from "skipped". * current_mon gate-poisoning fix: zero-insert runs no longer lock out the month. * Shortcode alias resolution: cat="tax", cat="acct", cat="fin" etc. now work consistently across all three shortcodes. * Disclaimer scoping: only real Dynamic Content articles receive the auto-disclaimer. Manual posts in DC categories are no longer affected. * User toggles (Auto Posting, Meta Data, Canonical, Content Image, Thumbnail Image) now persist across plugin upgrades and reactivations. * Daily cron handler hardened to insert articles correctly on the 2nd of every month. * [dynamic-post_videos] shortcode: hyphenated name, alias support, correct content lookup inside nested loops, friendly empty-state message. * Privacy improvements: API key and Grok AI key no longer written to PHP error_log on routine operations. * Removed 40 verbose debug log lines across four plugin files. Legitimate error reporting on actual API failures is preserved. * Stability: structural cleanup of internal alias map handling and content filters. = 8.6.4 = *Release Date - May 2026* * Critical Bug Fixes: Fixed article body rendering blank on certain Dynamic Content articles. Fixed disclaimer not appearing on older Dynamic Content articles in rotated-out categories. Daily cron registration hardening so the daily auto-post event always registers correctly, including on sites with DISABLE_WP_CRON. * Performance and Stability: Article post_excerpt is now populated at import time from the API meta_description. Added a clear admin notice for sites running with DISABLE_WP_CRON so users know to set up a system cron job for monthly auto-posting. * No new features. All existing functionality, shortcodes, RSS feeds, Grok AI, and Free/Full API behavior unchanged. = 8.6.1 = * Add missing Elementor and Gutenberg files. = 8.6 = * Added Grok AI Monthly Recurring Topic feature. * Recurring articles now remember chosen Post Status (Draft / Pending / Publish). * 6-month auto-stop per topic to prevent duplicate SEO content. * SEO Keywords field fully integrated. * Hard-coded strict content safety rules (no porn, drugs, gambling, hate speech, illegal minor content). * Removed all debug logging for production safety. * Minor UI improvements in Grok tab. * Major stability improvements. * Daily passive version check. * Force DC content visibility on single posts. = 8.2.2 = * Fixed S2C DC articles and Grok AI generated articles appearing blank on single post pages. = 8.2.1 = * FIXED: Alt-text filter now uses lightweight preg_replace so it never breaks embedded calculators or iframes (fixes "b.substr is not a function" error on tax articles and any page with iframes). * ADA image alt text is still fully applied using the API article title. = 8.1.9 = * NEW: Auto-populate image alt text from API article titles (major ADA compliance and image SEO boost). * NEW: Disclaimer text at the bottom of every Dynamic Post article now wrapped in semantic `