=== AI Content Bridge — AI Content Generator with Topic Clusters & Internal Linking === Contributors: aicontentbridge Tags: ai writer, content generator, seo, internal linking, woocommerce Requires at least: 6.0 Tested up to: 7.0 Requires PHP: 7.4 Stable tag: 2.11.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html AI content generator for WordPress. Plans topic clusters around your pages, writes them, links them and illustrates them. No API keys needed. == Description == AI Content Bridge generates complete, publish-ready content from a short brief — a full article or page, SEO metadata, an optional featured image and relevant video embeds — and publishes it to your site. You don't need any AI API keys of your own: generation runs on the AI Content Bridge service. It includes 24 purpose-built content types across marketing, commerce, business and learning & development, a built-in SEO score on every piece, an editable, search-grounded outline step for keyword-led pages, and reusable writing-style profiles so your content stays on-brand. **Plan a topic cluster, not just a post** Point the Content Strategist at a page you already have — a service page, a category page, a guide — and it plans the supporting posts that page is missing, then dates them into a calendar you can edit before anything is created. As each supporting post is generated it links back up to that page naturally, inside the copy, using anchor text that fits the sentence. Add the [content_cluster] shortcode to the page itself and it lists its supporting posts automatically as they publish. That is the hub-and-spoke structure search engines reward, built for real rather than drawn on a diagram — and there is no monthly cap on how many clusters you plan. **Link your back catalogue into what you publish next** Publishing a new post is only half the job. It needs links pointing at it, and those links live in posts you wrote months or years ago. Open any published post and AI Content Bridge finds the older posts that could link to it, shows you each one in the sentence the link would land in, and inserts the ones you approve. It reads the keywords and phrasings you declared when you planned the post, so no AI runs and no credits are spent. Placement is checked at the moment of writing, not when the list was built. If you have edited that post since, nothing is written and you are told to scan again. Links ACB adds can be removed again with one click, restoring the original wording exactly. And where a phrase would wrap only the front of a longer product name you publish, such as linking "Ford Transit" inside "Ford Transit Custom", the spot is refused rather than split, worked out from the post titles and keywords you already have. **Illustrated articles, not walls of text** Most AI writing produces one image at the top and then two thousand words of unbroken text. AI Content Bridge reads the article it has just written and suggests images that suit each section — described in plain language, not prompts — then places the one you choose into the post, inset left or right so your text wraps around it. It works on posts you have already published, too: open the image window on anything you have generated and ask for suggestions. Browsing suggestions is free; you only spend a credit on the images you decide to create. Your featured image is placed at the top of the post automatically, so it shows even on themes that do not display one. It works with the plugins you already run — each detected automatically, nothing to connect. Yoast, Rank Math and SEOPress receive SEO metadata; WooCommerce gets product content; MailPoet and Newsletter handle email; The Events Calendar takes events. For learning content, it generates LearnPress and LifterLMS lessons and courses complete with knowledge-check quizzes, built and linked to the lesson for you. Every new licence starts with 10 free trial credits, and while they last every content type is unlocked. They are a one time grant rather than a monthly allowance, so once they are spent you need credits to generate again. A one time credit bundle never expires and generates Blog Posts on the free plan; a paid plan unlocks every content type and adds a credit allowance every month. **See it in action** The full journey, free. Install from the directory, set up with one email, plan a topic cluster around a pillar page you already have, and take a blank site to three published posts that link back to it, all on the 10 trial credits: https://youtu.be/iiN1_cQstww More walkthroughs: * The whole loop in one take — three months planned, one brief to a publish-ready post — https://youtu.be/iffW4rlA6dY * Outline review and the 0–100 SEO score — https://youtu.be/PegVbyEmJH8 * Writing Style Profiles, a different voice per client — https://youtu.be/YygkHCzS8Os * WooCommerce products and ACF field targeting — https://youtu.be/Jy1mG0y6oag * Courses, lessons and quizzes for LifterLMS and LearnPress — https://youtu.be/eYoeRyuw2G0 * The same brief through ChatGPT and through AI Content Bridge — https://youtu.be/HWhYYBAITpw * A two-minute overview of the plugin — https://youtu.be/0MK6YlDVTL8 == External services == This plugin relies on the AI Content Bridge service to generate content, and that service uses several third-party APIs to do so. When you generate a piece of content, the plugin sends data from your site to the AI Content Bridge service, which then calls the providers below as needed. No content is generated, and no data is sent, unless you start a generation (or the plugin validates your licence key). **AI Content Bridge service** (the service this plugin connects to) Used to validate your licence, manage your credits, and orchestrate generation. Data sent: your licence key, your site's domain, and the inputs you provide for a piece of content (such as the title, keyword and brief fields). Sent whenever you generate content or your licence is validated. Terms: https://aicontentbridge.com/terms — Privacy: https://aicontentbridge.com/privacy **Anthropic (Claude API)** Used by the service to generate the article text and SEO metadata. Data sent: the prompt built from your content inputs. Sent on every generation. Terms: https://www.anthropic.com/legal/commercial-terms — Privacy: https://www.anthropic.com/legal/privacy **OpenAI API** Used by the service to generate a featured image. Data sent: an image prompt derived from your title and chosen style. Sent only when you choose to include an image. Terms: https://openai.com/policies/terms-of-use — Privacy: https://openai.com/policies/privacy-policy **Serper.dev** Used by the service to fetch search-results data so keyword-led content can be grounded in what currently ranks. Data sent: your primary keyword. Sent only for keyword-led content types when search grounding is enabled. Terms: https://serper.dev/terms — Privacy: https://serper.dev/privacy **YouTube Data API (Google)** Used by the service to find relevant videos to embed in your content. Data sent: a search query derived from your topic. Sent only when you choose to include video embeds. YouTube API Services Terms: https://developers.google.com/youtube/terms/api-services-terms-of-service — Google Privacy: https://policies.google.com/privacy == Installation == 1. Install the plugin from the WordPress plugin directory (or upload the zip) and activate it. 2. Open **AI Content Bridge** in your admin menu — the setup wizard opens automatically. 3. Enter your email address. That's the whole form: your free licence key is created and stored for you. 4. Click the verification link we email you — on any device — and setup completes by itself. Your 10 trial credits are active. 5. Choose a content type, fill in the brief, and generate. There is no separate signup and nothing to copy or paste — the licence key is handled for you, and it locks to this site's domain on first activation. If you already have a licence key (for example, a paid plan), you can enter it manually in **Settings** instead. Pretty permalinks must be enabled and your site's REST API reachable so generated content can be published back to your site. **Requirements** WordPress 6.0 or later, PHP 7.4 or later, and the PHP mbstring extension, which is standard on most hosts. If mbstring is missing you will see a notice on the Plugins screen. == Frequently Asked Questions == = How does setup work? = Install and activate the plugin, open AI Content Bridge, and enter your email in the setup wizard — that's the whole form. Click the verification link we send and setup completes by itself, with your 10 trial credits ready. No API keys, no separate signup, no licence key to copy. = Do I need my own AI API keys? = No. Generation runs on the AI Content Bridge service; you don't supply or pay for any AI provider keys. = Is there a free version? = Yes, and it is the full product while it lasts. Every new licence starts with 10 trial credits that unlock every content type, which is enough to run the Content Strategist on your industry and generate three complete posts with featured images. Be clear on what happens next: those credits are a one time grant, not a monthly allowance, so once they are spent generation stops until you add more. A one time credit bundle never expires and generates Blog Posts on the free plan. A paid plan unlocks every content type and adds a credit allowance every month. Everything the plugin does on your own site stays free and unmetered on every plan, including the trial and after it. That covers inbound link scanning and insertion, the cluster shortcode, the cluster report and the content diary, because none of them call the generation service. = Can it write WooCommerce product descriptions? = Yes. WooCommerce is detected automatically, and product content types write straight into your product fields: the description, short description and SEO metadata. = Can it generate LMS course and lesson content? = Yes. It generates course overviews, lessons and knowledge-check quizzes for LearnPress and LifterLMS, and each quiz is attached to its lesson for you — no assembling modules by hand. The destination LMS is detected automatically. = Can it build internal links between my posts? = Yes. When you plan a cluster around one of your existing pages, every post in that cluster links back up to it — written into the body copy during generation, not appended as a list. Add the [content_cluster] shortcode to the page and it also lists its supporting posts, updating itself as each one is published. = Do I need to plan a cluster to use the Strategist? = No. Choosing a page is optional. Leave it blank and the Content Strategist plans a normal content calendar exactly as before. = What happens if a generation fails? = Credits are deducted just before generation and refunded automatically if it fails, so a failed run doesn't cost you credits. = Does the plugin need any PHP extensions? = The mbstring extension should be enabled. It is a standard PHP extension and most hosts enable it by default. AI Content Bridge degrades safely without it in almost every case, but text can be trimmed at the wrong point and content containing certain characters may fail to render. If it is missing you will see a warning on the Plugins screen. Ask your host to enable it; for them it is usually a one-line change. = Why didn't my content publish? = The most common cause is the WordPress REST API being blocked by a security plugin, or pretty permalinks being disabled. See the documentation's Troubleshooting page. = Is my licence tied to one site? = A licence locks to the first domain it's used on. To move it to another site, contact support. == Screenshots == 1. Plan, generate and publish your entire content pipeline — without leaving WordPress. 2. The AI Content Strategist researches your topic and drafts a month of briefs in minutes. 3. Every article is planned against the live search results before a word is written. 4. Brief it your way — 24 content types, from blog posts to product descriptions. 5. Match any brand voice with reusable writing styles. 6. Drafts land straight in the WordPress editor — formatted, with a featured image. 7. A clear SEO score and actionable report on every finished piece. 8. ACB detects the plugins you already run — MailPoet, WooCommerce, LMS and more — and adapts. 9. Schedule a whole month of content at a glance. 10. Track what you've produced and published from one dashboard. 11. Built for LMS too — generate quizzes, lessons and course content. 12. Point the Strategist at a page you already have and it plans the supporting posts that page is missing. 13. The internal link back to your pillar page, written into the copy — real anchor text, mid-paragraph. 14. The [content_cluster] shortcode lists a cluster on its pillar page, updating itself as each post is published. == Development == **Source code.** The admin interface is a React application. The compiled bundle at `build/index.js` is generated from the human-readable source shipped in this plugin's `/src` directory. To rebuild it: 1. `npm ci` 2. `npm run build` (uses `@wordpress/scripts`) The output is written to `/build`. `src/index.js` is the entry point; every admin component lives under `src/components/`. **Bundled libraries.** * Parsedown 1.7.x — Markdown parser by Emanuil Rusev, https://github.com/erusev/parsedown (MIT licence, header preserved in `Parsedown.php`). The bundled copy is renamed `AICOBR_Parsedown` to avoid conflicts with other copies of the library. * Fraunces, DM Sans, DM Mono, Syne and Instrument Serif fonts — self-hosted in `/fonts`, each licensed under the SIL Open Font License 1.1 (licence texts in `/fonts/OFL-*.txt`). No fonts are loaded from third-party servers. == Changelog == = 2.11.2 = * Fixed: content containing backslashes, such as code samples, regular expressions and Windows file paths, could lose them when a post was published or when a link, video or image was inserted. WordPress strips one level of backslashes on save unless the content is prepared for it, and several of ACB's save paths were not preparing it. All of them now do, so code and paths survive exactly as written. Ordinary prose was never affected, which is why this went unnoticed. * Fixed: the out-of-credits message on the free plan referred to a fixed number of trial credits that no longer matched what the plan grants. It now states plainly that your free credits are used up and points to bundles or an upgrade, without quoting a figure that can drift. * Fixed: the Usage screen no longer shows placeholder numbers when it cannot reach the licence server. It now shows a dash for anything it does not know, rather than a plausible-looking figure under a "live data" heading. * Changed: the "Buy Credits" button on the free plan now opens the in-app Usage tab, where bundles are purchased, instead of sending you to the website. * Security: the licence server now refuses content and credit requests when its shared secret is not configured, rather than accepting them. This is a hardening change with no effect on a correctly configured install. = 2.11.1 = * Fixed: 2.11.0 was published without several of its plugin files, so it could not be activated. This release contains the complete file set. There are no other changes: everything listed below shipped in 2.11.0. * New: build a topic cluster under any post type. The pillar picker used to show only pages and posts, so if your most important pages are a custom post type, such as Makes or Models, you could not choose them as a pillar at all. Every public post type is now listed, with a badge showing which type each result is. * New: read content stored in custom fields. If your pages keep their body text in ACF fields rather than the main editor, those pages were invisible to inbound linking, because there was nothing in the post body to match against. Tell ACB which fields hold your text in Settings and those pages become usable link sources. Pages built from one shared template are deliberately left alone, because a link written into shared text would appear on every page using it at once. * New: insert links into WYSIWYG custom fields. Where a field is a WYSIWYG editor, approved inbound links are written straight into it, and undo works exactly as it does for the main editor. * New: ACB reads the field type from ACF rather than asking you. A plain text field is read for matching but refused for insertion, because a link written into one renders as visible angle brackets instead of a link. You pick fields from a checklist of what ACF actually has, showing each field's label, name, type and whether links can be inserted into it. * New: a cluster report. Open a cluster from the Content Diary to see how much of the plan is built, how many links point at your pillar and whether they come from the cluster or the rest of your site, and what work is outstanding. It counts links inside post content only, so menus, footers and shared templates are not included. It reports links and nothing else: no rankings, positions or traffic, because ACB cannot see those. * Fixed: on servers without the PHP mbstring extension, running an inbound link scan could stop with an error instead of completing. Scans now work without it, and a notice tells you if the extension is missing so you can ask your host to enable it. * Improved: when an inbound scan finds nothing because the phrase is simply absent from your other posts, it now says so, instead of reporting that the phrase was stuck in headings and links. * Improved: inbound scans now check up to 800 candidate posts per search word rather than 200, and tell you when a site is large enough that the counts shown are a minimum. = 2.10.0 = * New: inbound links. Open a published post from the Content Diary and ACB finds older posts on your site that could link to it. You see each suggestion in the sentence the link would land in, with the anchor highlighted, and approve the ones you want. Approving writes the link into the older post for you. * New: inbound linking costs no credits and uses no AI. It matches the keywords and anchor phrasings you declared when you planned the post, so it is exact and repeatable. * New: links can point at your cluster pillar as well as the post itself. A long-tail keyword often appears nowhere in an older post, while the shorter pillar phrase does, so these are shown in their own section with the destination named. A link going somewhere other than the post you are reviewing is never a surprise. * New: product names are protected. If linking a phrase would wrap only the front of a longer product you publish, such as "Ford Transit" inside "Ford Transit Custom", ACB refuses that spot and says so, rather than splitting the name. It works this out from the keywords and post titles you already have, so no guesswork is involved. * New: undo. Every link ACB inserts can be removed again from the review screen, restoring the original text exactly. * Improved: nothing is written unless the sentence you approved is still there. ACB re-checks the exact wording at the moment it writes, and if the post has been edited since the scan it writes nothing and asks you to scan again. * Improved: near-identical suggestions are grouped, so twenty posts using the same phrase are reviewed as one pattern that you can open to check individually. * Improved: when a scan finds nothing, it now explains why: the phrase is missing from your other posts, or only appears in headings and existing links, or would split a longer product name. * Fixed: the Content Diary stopped at the first 24 entries in list and grid view, with no way to reach the rest. All entries are now reachable, with a "Show more" button as well as loading on scroll. * Fixed: in list view, a generated post with a full set of buttons squeezed the title and excerpt into a narrow column. The buttons now wrap onto a second row instead. = 2.9.2 = * Fixed: planning a second topic cluster over dates you had already planned failed with "0 briefs inserted". A publish date was treated as reserved across your whole site, so a new plan covering the same weeks was rejected even when none of its briefs were duplicates. Different posts can now share a date; duplicate titles and keywords are still blocked. * Fixed: the "Weekly" and "Every 2 weeks" schedules always planned Mondays, whatever start date you chose. They now follow the day you start on, so a plan starting on a Thursday lands on Thursdays. * Fixed: briefs scheduled in the Content Diary were created as plain drafts with no date, so WordPress did not know when to publish them. A brief with a future date is now genuinely scheduled and the post shows "Scheduled for..." in WordPress. Set the time of day in Settings (default 9:00 am). * Fixed: inserting a YouTube video at the top or bottom of a post placed it outside the article, where it lost the post's styling. This affected posts using the automatic featured image at the top. * Fixed: an unrecognised image position could stop a generation from being published. * New: mark a generated post as approved. Approving is a note to yourself and never holds a post back — it simply shows which posts you have reviewed, which becomes useful once several clusters are in progress. * New: filter the calendar by topic cluster, so you can see one cluster's schedule on its own. The filter was previously available only in the list and grid views. * Improved: when briefs are skipped while adding a plan to the diary, the reason is now shown for each one instead of a single combined message. * Improved: the diary now shows each post's real WordPress state — scheduled, published or draft — alongside its planned date. = 2.9.1 = * Fixed: "Insert into Post" for YouTube videos did not work on Landing Pages, Service Pages, About Us pages, FAQ Pages or events. It now works on every content type. * Fixed: inserting a YouTube video could rewrite the rest of the post, turning shortcodes such as [content_cluster] and [content_featured_image] into fixed HTML that stopped updating. Insertion now leaves the rest of your content exactly as it was. * Fixed: the "After the first paragraph" option for videos placed the video at the end of the post instead, on posts written in the classic editor. * Fixed: videos are now placed inside the article rather than above or below it, so they pick up the same styling as the rest of the content. * Fixed: Monthly Reports showed a stale status and no thumbnail for pages, events and products. They now show the live status and image for every content type. = 2.9.0 = * New: in-body images. ACB now suggests images that suit each section of an article, and places the one you choose into the post for you. * New: image suggestions at generation. Tick "Suggest up to 3 in-body images" when you create a brief and the descriptions come back with the article — free, with no extra credit. * New: image suggestions for posts you already have. Open the image window on any generated post and press "Suggest images for this post" — this works on everything you have written with ACB, not just new content. * New: in-body images are inset left or right so your text wraps around them, alternating sides down the article. Generated at the right shape for the layout rather than cropped to fit. * New: the featured image now appears at the top of the post automatically via a [content_featured_image] shortcode, so it shows on themes that do not display it themselves. Delete the line to remove it, or turn it off in Settings. * New: [content_image] shortcode. Offered whenever ACB will not edit a post directly — a page-builder page, or one where the target section has been renamed — so you can always place the image yourself. * Improved: image alt text is generated with every suggestion. * Improved: image generation rate limit raised, and now counted per licence rather than per server, so agencies running several sites are no longer capped collectively. * Note: generating an in-body image costs 1 credit, the same as regenerating a featured image. Browsing suggestions is always free. = 2.8.11 = * New: topic clusters in the Content Strategist. Choose an existing page as the pillar and the plan becomes the supporting posts that page is missing. * New: automatic internal linking. Each post in a cluster links up to its pillar page contextually, written into the body copy at generation time. * New: [content_cluster] shortcode. Lists a page's supporting posts, updating itself as they publish. Shows nothing until at least one is published. * New: cluster filter in the Content Diary, with a published-of-total count per cluster. * New: deleting a brief can now also move its generated post to the WordPress trash. Off by default, asked separately, and only ever applies to posts this plugin created. * Improved: replanning against a page you have already built a cluster for now fills the gaps rather than repeating topics, rejecting proposals that duplicate an existing post's search intent. * Improved: Content Strategist field headings darkened for legibility. = 2.8.10 = * New licences now start with 10 trial credits (was 5) that unlock every content type while they last. * YouTube video embeds are now available on all plans, including free. * Onboarding, dashboard and pricing copy updated to match. = 2.8.9 = * Fixed: saving an invalid licence key now correctly deactivates the plugin — previously the "Email verified — licence active" status could remain on screen after a failed key was saved. * Fixed: your credit balance now refreshes immediately after activating a licence, instead of showing a placeholder figure until the page was reloaded. * Improved: the plugin now connects to the licence service on its own domain. * Improved: clearer message when a licence key cannot be verified, explaining that the plan has been set to Free. = 2.8.8 = * Improved: completely redesigned setup. Start with just your email — your free licence key is stored automatically, and the moment you click the verification link (on any device) setup completes by itself. No more copying and pasting a licence key. * Improved: the setup screen now explains exactly why an email address is needed (your licence key is locked to your site to prevent credit abuse) and confirms there are no newsletters or marketing emails — one verification email only. * Improved: closing setup now minimises it to a "Finish setup" banner instead of hiding it permanently, so an unfinished activation always has a one-click route back. * Added: a Resend button on the check-your-inbox screen, with a reminder to check the junk folder. * Fixed: paid plan pricing no longer appears before the free signup — plans are available from a "View paid plans" link and, as always, from the dashboard. = 2.8.7 = * Fixed: the upgrade panel listed the wrong number of content types for the Starter and Pro plans (it said 7 and 15; the correct figures are 6 and 17) and advertised a recipe content type that the plugin does not include. * Fixed: the Pro column listed Writing Style Profiles and the writer templates as Pro features. Both are available on every plan — it is extracting a style automatically from a writing sample that requires Pro, and the panel now says so. * Improved: generation is no longer abandoned if a single network call to the content service fails momentarily; transient failures are retried automatically before the run is given up and your credits returned. = 2.8.6 = * Fixed: L&D content types (Course Overview, Training Module, quizzes and lessons) can no longer publish as a plain blog post when an LMS is installed — if routing information is missing, the correct LMS destination is now derived automatically from the content type. * Improved: with Course Overview selected, the course picker now reads "Create as a new course" instead of "Don't publish to LMS", making the two intended workflows explicit — create a new course, or populate an existing one. = 2.8.5 = * Fixed: Landing Pages, Service Pages, About Us and FAQ Pages now publish as WordPress pages by default instead of posts (the destination can still be changed per brief). * Fixed: updating a content brief no longer temporarily hides the SEO, View post, YouTube and Image buttons on the entry's card. * Fixed: field labels in the New Style Profile window were unreadable against the background. * Fixed: the character counter beneath the writing sample displayed a raw character code instead of a tick. = 2.8.4 = * Fixed: target keywords in the Content Strategist now save immediately when added or removed — previously changes could be lost on refresh unless a plan was run. = 2.8.3 = * Fixed: bulk delete in the Content Diary now deletes entries permanently, not just from the current view. * Fixed: entries with multiple generated images no longer show two image buttons — just the gallery counter. * Fixed: restores the correct admin interface build — version 2.8.2 was packaged with an outdated interface bundle, which could cause the dashboard logo not to display and reverted some recent interface improvements. = 2.8.2 = * Fixed: bulk delete persistence and a duplicate image button in the Content Diary (re-released as 2.8.3 due to a packaging error). = 2.8.1 = * New: ACF field targeting now works for standard posts and pages as well as custom post types. * Changed: every feature implemented locally in the plugin is now available on all plans with no tier conditions — plan tiers apply only to the external generation service. This includes the ACF field selector, the YouTube embed option and Writing Style Profiles. * Changed: removed the attribution line previously appended to free-plan content. * Changed: all fonts (admin and front-end) are now self-hosted inside the plugin — no requests to Google Fonts. * Changed: options, classes, functions, script handles and post meta now use the distinct `aicobr_` prefix; existing data is migrated automatically and legacy option values are retained for one release as a rollback safety net. * Changed: the REST namespace is now `aicobr/v1`; the previous `ai-content/v1` namespace remains registered as a working alias for the transition. * Hardened: REST routes that modify the Content Diary or spend credits now require the `manage_options` capability by default (filterable via `aicobr_rest_capability`). * Changed: the bundled Parsedown library is renamed `AICOBR_Parsedown` so it can never conflict with another plugin's or theme's copy. * Removed: unnecessary WordPress core admin includes. = 2.8.0 = * Hardened: your content records — SEO reports, featured images and newsletter drafts — are now protected against a rare save-timing issue that could briefly blank them immediately after generation. New server-written fields are protected automatically going forward. = 2.7.0 = * New: AI Content Strategist — turn your business context and target keywords into a reviewable, dated multi-month content plan that populates your Content Diary as scheduled drafts. * New: Content Diary grid view and a sort dropdown (recent activity, date added, scheduled date, status, title). * Improved: per-content-type length profiles for more natural, better-fitting article lengths. * Improved: large content libraries stay fast — Content Diary entries now load as you scroll, in both list and grid. * Improved: the credit balance now refreshes instantly after each generation, with much lighter background usage. * Fixed: featured-image generation tuned for quality and cost (gpt-image-1.5). * Hardened: generation pipeline resilience so a single failed job can never interrupt others. = 2.6 = * New: SEO Intelligence — a built-in SEO score on every generation and an editable, search-grounded outline review for keyword-led content types. Earlier release notes are available on request from support@aicontentbridge.com. == Upgrade Notice == = 2.11.2 = Fixes backslash loss in published content, so code samples, regular expressions and Windows paths are now preserved exactly. Corrects the free-plan credit messages, keeps credit purchases in-app, and hardens the licence server. Recommended for all users, and important if you publish technical content. = 2.11.1 = Corrects the 2.11.0 package, which was published with files missing and could not be activated. If you tried 2.11.0, install this instead. Adds topic clusters under any post type, content stored in ACF custom fields as inbound link sources, and a cluster report. = 2.10.0 = Adds inbound links. ACB finds older posts that could link to a newly published one, shows you each suggestion in its sentence, and inserts the ones you approve. No credits and no AI. Includes protection against splitting longer product names, and undo on every link. Also fixes the Content Diary stopping at 24 entries. = 2.9.2 = Scheduled briefs are now genuinely scheduled in WordPress, so a post shows its publication date instead of sitting as an undated draft. Fixes the Content Strategist rejecting a second cluster planned over the same dates, and the Weekly schedule ignoring your chosen start day. Recommended for all users. = 2.9.1 = Fixes YouTube "Insert into Post" on pages and events, stops it rewriting shortcodes elsewhere in the post, and fixes missing statuses and thumbnails in Monthly Reports. = 2.9.0 = In-body images: ACB suggests pictures for each section of an article and places them for you, with text wrapping around them. Works on posts you have already written. Your featured image now also appears at the top of the post automatically. = 2.8.11 = Topic clusters: plan supporting content around a page you already have, and have each post link back to it automatically. Adds the [content_cluster] shortcode. = 2.8.10 = New licences start with 10 trial credits that unlock every content type, and YouTube embeds are now on every plan. Recommended for all users. = 2.8.9 = Setup and licence fixes: an invalid licence key now correctly deactivates the plugin, and your credit balance updates immediately after activation. = 2.8.8 = Setup is completely redesigned. Enter your email, click the verification link, and setup finishes by itself — no copying licence keys between your inbox and WordPress. = 2.8.7 = Corrects the plan comparison in the upgrade panel, and makes generation resilient to brief network interruptions. = 2.8.6 = L&D content can no longer land as a plain blog post — LMS routing is derived automatically if missing. Recommended for all users, essential for LMS users. = 2.8.5 = Page-type content now publishes as pages by default, plus fixes for the brief-edit card display and Style Profile field labels. Recommended for all users. = 2.8.4 = Strategist target keywords now save immediately when added or removed. Recommended for all users. = 2.8.3 = Fixes bulk delete not persisting, a duplicate image button, and a 2.8.2 packaging error that shipped an outdated interface bundle. Recommended for all users. = 2.8.1 = All locally implemented features are now available on every plan; fonts are self-hosted; internal identifiers move to the aicobr_ prefix with automatic data migration. Recommended for all users. = 2.8.0 = A reliability fix that protects freshly generated SEO reports, images and newsletter drafts from a rare save-timing glitch. Recommended for all users. = 2.7.0 = Adds the AI Content Strategist, Content Diary grid view and sorting, and much smoother handling of large content libraries. Recommended for all users. = 2.6 = Adds the SEO score and the search-grounded outline review. Recommended for all users.