Manually editing dozens of articles every time you want to move an ad or swap out a promotion is a nightmare. Content - Included lets you set rules once that automatically inject any module into exactly the right spot inside every matching article. Change the rule, and every article updates instantly - no editing, no copy-pasting, no busywork.
Overview
PROOF
I needed a clean, modern way to inject modules into articles. Everything I found was either abandoned, overpriced, or required too much friction just to get started.
The solution needed to be flexible enough to handle real-world sites - multiple categories, dozens of rules, edge cases - while remaining rock-solid reliable. Sometimes you just have to roll your sleeves up and get to work.
So I built my own and made it free.
HOW IT WORKS
You create a rule that says "for articles in these categories, insert this module after the 2nd paragraph." After that, every matching article automatically gets that module injected at that spot when it loads - your visitors just see the content, and you never touch the articles themselves. When you want to change what appears or where, you update the rule and every article changes at once.
FEATURES
Insert before, after, or deep inside your content - Place modules at the top, bottom, or after any specific paragraph or heading level
Target by category - Rules apply to whole sections of your site at once, including all subcategories if you want
Filter by article tags - Show a module only on certain articles, or suppress it on others, using tags you already have
Works with any published module - Ads, banners, custom HTML, related content, calls-to-action - if it's a Joomla module, you can inject it
One place to manage everything - All your rules live in the plugin settings; no extra admin screens, no separate component to learn
Nothing to install on the article side - No shortcodes to paste, no article editing required
Drag to reorder rules - Change the order your rules apply with a simple drag-and-drop, no technical configuration needed
Any published module on your site — custom HTML with full WYSIWYG editor support, Google AdSense, article lists, banners, or anything else. Since the plugin uses Joomla's own module rendering, every module behaves exactly as it would in any other position on your site. It uses Joomla's own {loadmoduleid} and {loadposition} syntax under the hood, so anything that already works as a module on your site will work here too. Tag-based filtering handles exactly that. Add a tag to include or exclude any article from a rule. No. Create as many rules as your site needs — there are no artificial limits, no paid upgrade required to unlock more. Other plugins lock category targeting, before/after insertion, and heading-level positioning behind a paid upgrade. Content - Included includes all of that for free, with no block limits, no paragraph limits, and automatic subcategory inheritance — so one rule covers your entire content tree without manual duplication. The plugin caches its rule lookups, so it's doing minimal work on each page load — roughly the same footprint as any other small content plugin.Frequently Asked Questions:
What kinds of modules can I inject?
Will this work with my existing modules and plugins?
What if I want it on some articles but not others?
Is there a limit on how many insertions I can configure?
How does this compare to other options?
Will it slow my site down?
Technical Details
TECHNICAL DETAILS
- Hooks into
onContentPrepareat high priority via Joomla's subscriber interface - Supports
{loadmoduleid}and{loadposition}injection - Nth-item insertion uses regex offset matching on closing
</p>or</hN>tags - Category descendant resolution uses Joomla's native
Categories::getInstance('Content')with recursivegetChildren(true) - Results cached per category ID using Joomla's output cache controller (
plg_content_includedgroup) - Runs on
com_content.articleandcom_content.featuredcontexts only; skips administrator - Compatible with Joomla 4.x, 5.x, 6.x