 #  Insert Anything Into Your Joomla Articles 

 

Joomla's editor strips iframe, [script](/blog/personal/someone-elses-code "Someone Else’s Code"), and style tags. It's a security measure, and it's intentional - but it leaves a lot of legitimate use cases stranded. If you've ever pasted an embed code into an article only to find it gone on save, you know exactly what this means.

The frustrating part is that the workarounds are already built into Joomla. You don't need a paid plugin to insert an iframe, inject a script, or reuse content blocks across your site. You just need to know where to look.

Here's every legitimate way around the restriction - using tools you either already have or can get free.

## Iframes

Joomla ships with a dedicated iframe module called **mod\_wrapper**. Fill in the URL, set your dimensions, and you're done. No HTML required, no editor configuration, no stripped tags - because you never put the iframe in the editor in the first place.

Once configured, insert it into any article with `{loadmoduleid X}`. Or use **Content - Included** to inject it automatically across entire [categories](/blog/development/bug-reports-a-developers-best-friend-not-a-burden "Bug Reports: A Developer's Best Friend, Not a Burden") without touching a single article.

## Scripts and Styles in the Page Head

Inline scripts and stylesheets don't belong in article content anyway - they belong in the `<head>`. **[System - Head Tag](/joomla-techniques/how-to-add-custom-scripts-or-stylesheets-to-a-single-joomla-article-without-losing-your-mind "Add Custom Scripts or Stylesheets to a Joomla Article")** puts them there properly, using Joomla's own document API.

This matters more than it might seem. Scripts stuffed into article bodies are at the mercy of the editor, page caching, and component rendering - any of which can silently break them. System - Head Tag inserts at the right point in the page lifecycle, so your scripts load reliably every time.

For per-article or per-category scripts, combine it with Joomla's module assignment system to control exactly where and when they fire.

## Arbitrary HTML - Embeds, Custom Code, Anything Else

For everything else - embed codes, custom markup, third-party widgets - Joomla's **Custom HTML module** (`mod_custom`) accepts almost any HTML you give it. The trick is that the module lives outside the editor, so the editor's tag-stripping rules don't apply. Enable "Prepare Content" in the module options and you also get full `{loadmoduleid}` and `{loadposition}` support, meaning you can nest other modules inside it if needed.

Assign it to your articles manually, or use **Content - Included** to inject it automatically by category, subcategory, or article tag.

## When You Need More Control Over Module Output

If you need to wrap module output in custom markup - suppress the module chrome, adjust the HTML structure, or control exactly what renders - a `mod_custom` template override handles that without any additional plugins. Create an override under your template's `html/mod_custom/` folder and you have full control over the rendered HTML.

Just create a php file in `/path/to/your/joomla/template/html/mod_custom/` and Joomla will offer it to you as a layout option in the module Advanced tab.

 ![Create an empty file - get a module layout option](https://cdn.richeyweb.com/images/articles/insert-anything-into-your-joomla-articles/insert-via-output-override.webp) Create an empty file - get a module layout option ## Reusable Content Blocks

If you want a block of content - a disclaimer, a promotional message, a signature - to appear consistently across multiple articles, the answer is a Custom HTML module combined with Joomla's native `{loadmoduleid}` tag.

Create the module once. Insert `{loadmoduleid X}` wherever you want it to appear. Update the module and every instance on your site updates with it.

For automatic injection across entire categories without touching the articles at all, **Content - Included** handles this through rules - select the categories, set the insertion point, choose the module. Done.

## Headings and Formatted Content

Worth mentioning while we're here: Joomla's editor handles H1 through H6 natively through the toolbar. If you prefer to write markup directly, switching to source view lets you type standard HTML - `<h1>`, `<h2>`, whatever you need. No plugin required, no shortcode syntax to remember.

## The Full Toolkit

 | Need | Solution |
|---|---|
| Iframes | mod\_wrapper |
| Scripts and styles in the page head | System - Head Tag |
| Embed codes and arbitrary HTML | Custom HTML module |
| Reusable content blocks | Custom HTML module + `{loadmoduleid}` |
| Automatic injection into articles by category | Content - Included |
| Custom module output structure | mod\_custom template override |
| Headings and formatted content | Joomla editor toolbar or source HTML |

Every solution in this list either ships with Joomla or is available free. More importantly, each one works with Joomla's own rendering pipeline - not around it.

## A Note on How These Tools Work

The plugins mentioned here - System - Head Tag and Content - Included - are both free and both built on the same principle: use the APIs Joomla provides, don't work around them. [System - Head Tag](/software/joomla/plugins/system-headtag) uses Joomla's document object to inject into the head at the right moment. [Content - Included](/software/joomla/plugins/content-included) uses the standard content event system and Joomla's own module renderer.

The result is predictable, cache-friendly behavior that plays nicely with whatever else is running on your site.

## Frequently Asked Questions:

Why does Joomla remove my iframe when I save? Joomla's default editor (TinyMCE) filters out tags it considers potentially unsafe, including iframe, script, and style. This is intentional behavior designed to prevent malicious content from being saved into articles. The solution is not to fight the editor — it's to keep those elements out of the editor entirely, using modules designed for the purpose.

Citation:[Help5.x:Site Modules: Wrapper](https://docs.joomla.org/Help5.x:Site_Modules:_Wrapper/en)

How do I embed a YouTube video or external page in a Joomla article?Use mod\_wrapper — Joomla's built-in iframe module. Go to System → Site Modules → New, select Wrapper, enter your URL, set dimensions, and save. Then place {loadmoduleid X} in your article where you want it to appear.

Citation:[Help5.x:Site Modules: Wrapper](https://docs.joomla.org/Help5.x:Site_Modules:_Wrapper/en)

How do I add a script tag or custom CSS to a Joomla article?You generally shouldn't — scripts and styles belong in the head, not inside article content. System - Head Tag handles this correctly. For cases where you need inline script output as part of module content, use the Custom HTML module with "Prepare Content" enabled, which processes output outside the editor's restrictions.



How do I insert a module into a Joomla article? Joomla's native Content - Load Modules plugin handles this. Once enabled, you can use any of three syntaxes in your article text: {loadmoduleid X} — loads a specific module by its ID — loads all modules assigned to a named position — loads a module by type name Note that the Content - Load Modules plugin must be enabled, and the module must be assigned to the relevant menu items or All Pages.



Can I reuse the same content block across multiple articles without copy-pasting?Yes. Create a Custom HTML module with your content, then insert {loadmoduleid X} in any article where you want it to appear. Edit the module once and every article updates automatically. For injecting the same block automatically into entire categories without editing individual articles at all, Content - Included handles that through rules.



Do I need a paid plugin to insert HTML into Joomla articles? No. Everything described in this article is either built into Joomla or available free. The editor's tag restrictions exist for security reasons, but Joomla's module system provides clean, supported ways to insert any content — iframes, scripts, custom HTML, reusable blocks — without touching the editor at all.



How do I insert Google AdSense or other ad code into my articles?Create a Custom HTML module containing your AdSense code. Because the module lives outside the editor, the tag restrictions don't apply. Then use Content - Included to automatically inject that module after the second paragraph of every article in your chosen categories — no manual editing of individual articles required.



- [      email ](mailto:?subject=Insert+Anything+Into+Your+Joomla+Articles&body=https%3A%2F%2Fwww.richeyweb.com%2Fjoomla-techniques%2Finsert-anything-into-your-joomla-articles)
- [      facebook ](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.richeyweb.com%2Fjoomla-techniques%2Finsert-anything-into-your-joomla-articles)
- [      x-twitter ](https://twitter.com/intent/tweet?text=Insert+Anything+Into+Your+Joomla+Articles%3A+https%3A%2F%2Fwww.richeyweb.com%2Fjoomla-techniques%2Finsert-anything-into-your-joomla-articles)
- [      linkedin ](http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.richeyweb.com%2Fjoomla-techniques%2Finsert-anything-into-your-joomla-articles&title=Insert+Anything+Into+Your+Joomla+Articles&summary=Joomla%27s+editor+strips+iframe%2C+script+%2C+and+style...)
- [      pinterest ](http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.richeyweb.com%2Fjoomla-techniques%2Finsert-anything-into-your-joomla-articles&media=https%3A%2F%2Fwww.richeyweb.com%2Fimages%2Farticles%2Finsert-anything-into-your-joomla-articles%2Finsert-via-output-override.webp&description=Insert+Anything+Into+Your+Joomla+Articles)
 


 

   [  Previous article: Speed Up Your Joomla Workflow with a Custom Administrator Menu   Speed Up Your Joomla Workflow with a Custom Administrator Menu ](/joomla-techniques/speed-up-your-joomla-workflow-with-a-custom-administrator-menu) [  Next article: Load Feedback in Joomla Without an Extension  Load Feedback in Joomla Without an Extension  ](/joomla-techniques/load-feedback-in-joomla-without-an-extension)  

##### We Value Your Privacy

 

We use cookies to enhance your experience and for traffic analysis. By continuing to visit this site you agree to our use of cookies.

[Privacy Policy](/privacy-policy)

 Details 

###### Google Tag Manager Items

- Ad Storage
- Ad User Data
- Ad Personalization
- Analytics Storage
- Functionality Storage
- Personalization Storage
- Security Storage
 
 

 

 

 

 

 Decline Accept
```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.richeyweb.com/#organization","name":"RicheyWeb","url":"https://www.richeyweb.com/","logo":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/logo/richeyweb.svg","contentUrl":"https://www.richeyweb.com/images/logo/richeyweb.svg","width":{"@type":"QuantitativeValue","value":38,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":38,"unitCode":"PX"},"@id":"https://www.richeyweb.com/#logo"},"image":{"@id":"https://www.richeyweb.com/#logo"},"sameAs":["https://x.com/ComRicheyweb","https://www.facebook.com/RicheyWebDev/","https://www.youtube.com/channel/UCxnVG8BwOvQRO7hVqNX7T2g","https://community.joomla.org/service-providers-directory/listings/115:richeyweb.html"],"description":"RicheyWeb is a custom software developer specializing in Joomla extensions.","ContactPoint":[{"@type":"ContactPoint","url":"https://www.richeyweb.com/contact-us","telephone":"903-873-8460","contactType":"Owner/Administrator","areaServed":["United States",{"@type":"Country","name":"United States","sameAs":["https://en.wikipedia.org/wiki/United_States","https://www.wikidata.org/wiki/Q30","https://g.co/kg/m/09c7w0"]},"European Union",{"@type":"AdministrativeArea","name":"European Union","sameAs":["https://en.wikipedia.org/wiki/European_Union","https://www.wikidata.org/wiki/Q458","https://g.co/kg/m/0_6t_z8"]},"United Kingdom",{"@type":"Country","name":"United Kingdom","sameAs":["https://en.wikipedia.org/wiki/United_Kingdom","https://www.wikidata.org/wiki/Q145","https://g.co/kg/m/07ssc"]},"Australia",{"@type":"Country","name":"Australia","sameAs":["https://en.wikipedia.org/wiki/Australia","https://www.wikidata.org/wiki/Q408","https://g.co/kg/m/0chghy"]},"Canada",{"@type":"Country","name":"Canada","sameAs":["https://en.wikipedia.org/wiki/Canada","https://www.wikidata.org/wiki/Q16","https://g.co/kg/m/0d060g"]},"Russia",{"@type":"Country","name":"Russia","sameAs":["https://en.wikipedia.org/wiki/Russia","https://www.wikidata.org/wiki/Q159","https://g.co/kg/m/06bnz"]},"China",{"@type":"Country","name":"China","sameAs":["https://en.wikipedia.org/wiki/China","https://www.wikidata.org/wiki/Q148","https://g.co/kg/m/0d05w3"]}],"availableLanguage":"en"},{"@type":"ContactPoint","url":"https://www.richeyweb.com/bugs","telephone":"903-873-8460","contactType":"Technical Support","areaServed":["United States",{"@type":"Country","name":"United States","sameAs":["https://en.wikipedia.org/wiki/United_States","https://www.wikidata.org/wiki/Q30","https://g.co/kg/m/09c7w0"]},"European Union",{"@type":"AdministrativeArea","name":"European Union","sameAs":["https://en.wikipedia.org/wiki/European_Union","https://www.wikidata.org/wiki/Q458","https://g.co/kg/m/0_6t_z8"]},"United Kingdom",{"@type":"Country","name":"United Kingdom","sameAs":["https://en.wikipedia.org/wiki/United_Kingdom","https://www.wikidata.org/wiki/Q145","https://g.co/kg/m/07ssc"]},"Australia",{"@type":"Country","name":"Australia","sameAs":["https://en.wikipedia.org/wiki/Australia","https://www.wikidata.org/wiki/Q408","https://g.co/kg/m/0chghy"]},"Canada",{"@type":"Country","name":"Canada","sameAs":["https://en.wikipedia.org/wiki/Canada","https://www.wikidata.org/wiki/Q16","https://g.co/kg/m/0d060g"]},"Russia",{"@type":"Country","name":"Russia","sameAs":["https://en.wikipedia.org/wiki/Russia","https://www.wikidata.org/wiki/Q159","https://g.co/kg/m/06bnz"]},"China",{"@type":"Country","name":"China","sameAs":["https://en.wikipedia.org/wiki/China","https://www.wikidata.org/wiki/Q148","https://g.co/kg/m/0d05w3"]}],"availableLanguage":"en"}],"knowsAbout":["Computer programming",{"@type":"Thing","name":"Computer programming","sameAs":["https://en.wikipedia.org/wiki/Computer_programming","https://www.wikidata.org/wiki/Q80006","https://g.co/kg/m/01mf_"]},"PHP",{"@type":"Thing","name":"PHP","sameAs":["https://en.wikipedia.org/wiki/PHP","https://www.wikidata.org/wiki/Q59","https://g.co/kg/m/060kv"]},"JavaScript",{"@type":"Thing","name":"JavaScript","sameAs":["https://en.wikipedia.org/wiki/JavaScript","https://www.wikidata.org/wiki/Q2005","https://g.co/kg/m/02p97"]},"arduino","Computer forensics",{"@type":"Thing","name":"Computer forensics","sameAs":["https://en.wikipedia.org/wiki/Computer_forensics","https://www.wikidata.org/wiki/Q878553","https://g.co/kg/m/02wxbd"]},"White hat",{"@type":"Thing","name":"White hat","sameAs":["https://en.wikipedia.org/wiki/White_hat_(computer_security)","https://www.wikidata.org/wiki/Q7995625","https://g.co/kg/m/03ns_5"]},"Search engine optimization",{"@type":"Thing","name":"Search engine optimization","sameAs":["https://en.wikipedia.org/wiki/Search_engine_optimization","https://www.wikidata.org/wiki/Q180711","https://g.co/kg/m/019qb_"]},"Search engine marketing",{"@type":"Thing","name":"Search engine marketing","sameAs":["https://en.wikipedia.org/wiki/Search_engine_marketing","https://www.wikidata.org/wiki/Q846132","https://g.co/kg/m/06mw8r"]},"Digital marketing",{"@type":"Thing","name":"Digital marketing","sameAs":["https://en.wikipedia.org/wiki/Digital_marketing","https://www.wikidata.org/wiki/Q1323528","https://g.co/kg/g/122hcnps"]},"Web hosting service",{"@type":"Thing","name":"Web hosting service","sameAs":["https://en.wikipedia.org/wiki/Web_hosting_service","https://www.wikidata.org/wiki/Q5892272","https://g.co/kg/m/014pz4"]},"Email hosting service",{"@type":"Thing","name":"Email hosting service","sameAs":["https://en.wikipedia.org/wiki/Email_hosting_service","https://www.wikidata.org/wiki/Q5368818","https://g.co/kg/m/09w60m"]},"Internet hosting service",{"@type":"Thing","name":"Internet hosting service","sameAs":["https://en.wikipedia.org/wiki/Internet_hosting_service","https://www.wikidata.org/wiki/Q1210425","https://g.co/kg/m/09w5yw"]},"Virtual hosting",{"@type":"Thing","name":"Virtual hosting","sameAs":["https://en.wikipedia.org/wiki/Virtual_hosting","https://www.wikidata.org/wiki/Q588365","https://g.co/kg/m/024mvh"]},"Web performance",{"@type":"Thing","name":"Web performance","sameAs":["https://en.wikipedia.org/wiki/Web_performance","https://www.wikidata.org/wiki/Q7978612","https://g.co/kg/m/0gfj3f1"]},"Web content management system",{"@type":"Thing","name":"Web content management system","sameAs":["https://en.wikipedia.org/wiki/Web_content_management_system","https://www.wikidata.org/wiki/Q45211","https://g.co/kg/m/0615s2"]},"Content management system",{"@type":"Thing","name":"Content management system","sameAs":["https://en.wikipedia.org/wiki/Content_management_system","https://www.wikidata.org/wiki/Q131093","https://g.co/kg/m/0k23c"]},"General Data Protection Regulation",{"@type":"Thing","name":"General Data Protection Regulation","sameAs":["https://en.wikipedia.org/wiki/General_Data_Protection_Regulation","https://www.wikidata.org/wiki/Q1172506","https://g.co/kg/m/0pk_7xs"]},"SERP",{"@type":"Thing","name":"SERP","sameAs":["https://en.wikipedia.org/wiki/SERP","https://www.wikidata.org/wiki/Q2205811","https://g.co/kg/g/11c5szp7kc"]},"Artificial intelligence",{"@type":"Thing","name":"Artificial intelligence","sameAs":["https://en.wikipedia.org/wiki/Artificial_intelligence","https://www.wikidata.org/wiki/Q11660","https://g.co/kg/m/0mkz"]},"Prompt engineering",{"@type":"Thing","name":"Prompt engineering","sameAs":["https://en.wikipedia.org/wiki/Prompt_engineering","https://www.wikidata.org/wiki/Q108941486","https://g.co/kg/g/11p6kpgt_n"]},"E-learning",{"@type":"Thing","name":"E-learning","sameAs":["https://en.wikipedia.org/wiki/E-learning_(theory)","https://www.wikidata.org/wiki/Q182250","https://g.co/kg/g/122czm1f"]},"Sharable Content Object Reference Model",{"@type":"Thing","name":"Sharable Content Object Reference Model","sameAs":["https://en.wikipedia.org/wiki/Sharable_Content_Object_Reference_Model","https://www.wikidata.org/wiki/Q827811","https://g.co/kg/m/06_40"]},"Experience API",{"@type":"Thing","name":"Experience API","sameAs":["https://en.wikipedia.org/wiki/Experience_API","https://www.wikidata.org/wiki/Q7807728","https://g.co/kg/g/1yw9ktxr8"]},"Joomla",{"@type":"Thing","name":"Joomla","sameAs":["https://en.wikipedia.org/wiki/Joomla","https://www.wikidata.org/wiki/Q13167","https://g.co/kg/m/07qb81"]},"Nginx",{"@type":"Thing","name":"Nginx","sameAs":["https://en.wikipedia.org/wiki/Nginx","https://www.wikidata.org/wiki/Q306144","https://g.co/kg/m/02qft91"]},"MySQL",{"@type":"Thing","name":"MySQL","sameAs":["https://en.wikipedia.org/wiki/MySQL","https://www.wikidata.org/wiki/Q850","https://g.co/kg/m/04y3k"]}],"areaServed":["United States",{"@type":"Country","name":"United States","sameAs":["https://en.wikipedia.org/wiki/United_States","https://www.wikidata.org/wiki/Q30","https://g.co/kg/m/09c7w0"]},"European Union",{"@type":"AdministrativeArea","name":"European Union","sameAs":["https://en.wikipedia.org/wiki/European_Union","https://www.wikidata.org/wiki/Q458","https://g.co/kg/m/0_6t_z8"]},"United Kingdom",{"@type":"Country","name":"United Kingdom","sameAs":["https://en.wikipedia.org/wiki/United_Kingdom","https://www.wikidata.org/wiki/Q145","https://g.co/kg/m/07ssc"]},"Australia",{"@type":"Country","name":"Australia","sameAs":["https://en.wikipedia.org/wiki/Australia","https://www.wikidata.org/wiki/Q408","https://g.co/kg/m/0chghy"]},"Canada",{"@type":"Country","name":"Canada","sameAs":["https://en.wikipedia.org/wiki/Canada","https://www.wikidata.org/wiki/Q16","https://g.co/kg/m/0d060g"]},"Russia",{"@type":"Country","name":"Russia","sameAs":["https://en.wikipedia.org/wiki/Russia","https://www.wikidata.org/wiki/Q159","https://g.co/kg/m/06bnz"]},"China",{"@type":"Country","name":"China","sameAs":["https://en.wikipedia.org/wiki/China","https://www.wikidata.org/wiki/Q148","https://g.co/kg/m/0d05w3"]}],"memberOf":["Mensa International",{"@type":"Organization","name":"Mensa International","sameAs":["https://en.wikipedia.org/wiki/Mensa_International","https://www.wikidata.org/wiki/Q184194","https://g.co/kg/m/0140pf"]},"National Rifle Association",{"@type":"Organization","name":"National Rifle Association","sameAs":["https://en.wikipedia.org/wiki/National_Rifle_Association","https://www.wikidata.org/wiki/Q863259","https://g.co/kg/m/0j6f9"]},"CompTIA",{"@type":"Organization","name":"CompTIA","sameAs":["https://en.wikipedia.org/wiki/CompTIA","https://www.wikidata.org/wiki/Q597534","https://g.co/kg/m/040shq"]},"ISFCE LLC",{"@type":"Organization","name":"ISFCE LLC","sameAs":["https://isfce.com","https://g.co/kg/g/11wxm5r0rg"]}],"hasCredential":[{"@type":"EducationalOccupationalCredential","name":"Joomla 3 Certified Administrator","credentialCategory":"Certification","description":"Administrator Exam is the first available Joomla! certification exam","recognizedBy":{"@type":"Organization","name":"Open Source Matters, Inc.","sameAs":["https://en.wikipedia.org/wiki/Open_Source_Matters,_Inc.","https://g.co/kg/g/11f00wvjhz"]},"url":"https://certification.joomla.org/certified-user-directory/michael-richey","about":["Content management system",{"@type":"Thing","name":"Content management system","sameAs":["https://en.wikipedia.org/wiki/Content_management_system","https://www.wikidata.org/wiki/Q131093","https://g.co/kg/m/0k23c"]},"Web content management system",{"@type":"Thing","name":"Web content management system","sameAs":["https://en.wikipedia.org/wiki/Web_content_management_system","https://www.wikidata.org/wiki/Q45211","https://g.co/kg/m/0615s2"]},"Joomla",{"@type":"Thing","name":"Joomla","sameAs":["https://en.wikipedia.org/wiki/Joomla","https://www.wikidata.org/wiki/Q13167","https://g.co/kg/m/07qb81"]}],"educationalLevel":"expert","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/contact/badge.webp","contentUrl":"https://www.richeyweb.com/images/contact/badge.webp","width":{"@type":"QuantitativeValue","value":300,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":86,"unitCode":"PX"},"caption":"Joomla 3 Certified Administrator"}},{"@type":"EducationalOccupationalCredential","name":"Certified Computer Examiner","credentialCategory":"Certification","description":"Internationally recognized computer forensics certifiecation","recognizedBy":{"@type":"Organization","name":"ISFCE LLC","sameAs":["https://en.wikipedia.org/wiki/ISFCE_LLC","https://g.co/kg/g/11wxm5r0rg"]},"url":"https://isfce.com/","about":["Digital forensics",{"@type":"Thing","name":"Digital forensics","sameAs":["https://en.wikipedia.org/wiki/Digital_forensics","https://www.wikidata.org/wiki/Q3246940","https://g.co/kg/m/0cnxzfx"]},"Computer forensics",{"@type":"Thing","name":"Computer forensics","sameAs":["https://en.wikipedia.org/wiki/Computer_forensics","https://www.wikidata.org/wiki/Q878553","https://g.co/kg/m/02wxbd"]},"Mobile device forensics",{"@type":"Thing","name":"Mobile device forensics","sameAs":["https://en.wikipedia.org/wiki/Mobile_device_forensics","https://www.wikidata.org/wiki/Q6887097","https://g.co/kg/m/06zp3tp"]},"Network forensics",{"@type":"Thing","name":"Network forensics","sameAs":["https://en.wikipedia.org/wiki/Network_forensics","https://www.wikidata.org/wiki/Q7001032","https://g.co/kg/m/05pb280"]},"Database forensics",{"@type":"Thing","name":"Database forensics","sameAs":["https://en.wikipedia.org/wiki/Database_forensics","https://www.wikidata.org/wiki/Q5227405","https://g.co/kg/m/0cgqsy"]}],"educationalLevel":"expert","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/contact/isfce-cce.webp","contentUrl":"https://www.richeyweb.com/images/contact/isfce-cce.webp","width":{"@type":"QuantitativeValue","value":150,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":150,"unitCode":"PX"},"caption":"Certified Computer Examiner"}}],"hasOfferCatalog":{"@type":"OfferCatalog","name":"Web Services","itemListElement":[{"@type":"Offer","itemOffered":{"@type":"Service","name":"Hosting"}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Development"}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Search Engine Optimization"}}]}},{"@type":"WebSite","@id":"https://www.richeyweb.com/#website","url":"https://www.richeyweb.com/","name":"RicheyWeb","publisher":{"@id":"https://www.richeyweb.com/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.richeyweb.com/search?q={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string","valueMaxLength":256,"valueMinLength":2,"valuePattern":"^[A-Za-z0-9\\s]+$"}},"creator":{"@id":"https://www.richeyweb.com/#organization"},"copyrightHolder":{"@id":"https://www.richeyweb.com/#organization"}},{"@type":"WebPage","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#webpage","url":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles?tmpl=markdown","name":"Insert Anything Into Your Joomla Articles","description":"Discover how to insert iframes, scripts, and custom code into Joomla articles with built-in tools. Learn effective workarounds now.","isPartOf":{"@id":"https://www.richeyweb.com/#website"},"about":{"@id":"https://www.richeyweb.com/#organization"},"inLanguage":"en-GB"},{"@type":"Article","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/articles/insert-anything-into-your-joomla-articles/insert-via-output-override.webp","contentUrl":"https://www.richeyweb.com/images/articles/insert-anything-into-your-joomla-articles/insert-via-output-override.webp","width":{"@type":"QuantitativeValue","value":1814,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":1020,"unitCode":"PX"},"caption":"Insert Anything Into Your Joomla Articles","representativeOfPage":true},"headline":"Insert Anything Into Your Joomla Articles","description":"Discover how to insert iframes, scripts, and custom code into Joomla articles with built-in tools. Learn effective workarounds now.","author":{"@type":"Person","name":"Michael Richey","url":"https://www.richeyweb.com/contact-us","@id":"https://www.richeyweb.com/contact-us#person"},"datePublished":"2026-04-04T00:00:00+00:00","dateModified":"2026-04-04T00:00:00+00:00","about":["Joomla",{"@type":"Thing","name":"Joomla","sameAs":["https://en.wikipedia.org/wiki/Joomla","https://www.wikidata.org/wiki/Q13167","https://g.co/kg/m/07qb81"]},"Content management system",{"@type":"Thing","name":"Content management system","sameAs":["https://en.wikipedia.org/wiki/Content_management_system","https://www.wikidata.org/wiki/Q131093","https://g.co/kg/m/0k23c"]},"IFrame",{"@type":"Thing","name":"IFrame","sameAs":["https://en.wikipedia.org/wiki/IFrame","https://www.wikidata.org/wiki/Q1657065","https://g.co/kg/g/11c5t13k3s"]},"HTML",{"@type":"Thing","name":"HTML","sameAs":["https://en.wikipedia.org/wiki/HTML","https://www.wikidata.org/wiki/Q8811","https://g.co/kg/m/03g20"]}],"mentions":["Content - Included",{"@type":"SoftwareApplication","@id":"https://www.richeyweb.com/software/joomla/plugins/content-included#SoftwareApplication","name":"Content - Included","sameAs":["https://www.richeyweb.com/software/joomla/plugins/content-included","https://en.wikipedia.org/wiki/Content_-_Included"]},"System - Head Tag",{"@type":"SoftwareApplication","@id":"https://www.richeyweb.com/software/joomla/plugins/system-headtag/#softwareapplication","name":"System - Head Tag","sameAs":["https://extensions.joomla.org/extension/core-enhancements/coding-a-scripts-integration/headtag/","https://en.wikipedia.org/wiki/System_-_Head_Tag"]},"JavaScript",{"@type":"Thing","name":"JavaScript","sameAs":["https://en.wikipedia.org/wiki/JavaScript","https://www.wikidata.org/wiki/Q2005","https://g.co/kg/m/02p97"]},"CSS",{"@type":"Thing","name":"CSS","sameAs":["https://en.wikipedia.org/wiki/CSS","https://www.wikidata.org/wiki/Q46441","https://g.co/kg/m/015tjh"]},{"@type":"Article","@id":"https://www.richeyweb.com/blog/development/bug-reports-a-developers-best-friend-not-a-burden#article","url":"https://www.richeyweb.comblog/development/bug-reports-a-developers-best-friend-not-a-burden","name":"Bug Reports: A Developer's Best Friend, Not a Burden","headline":"Bug Reports: A Developer's Best Friend, Not a Burden","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/articles/plg_content_interlinked/articles/russian-comments.webp","contentUrl":"https://www.richeyweb.com/images/articles/plg_content_interlinked/articles/russian-comments.webp","width":{"@type":"QuantitativeValue","value":1200,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":675,"unitCode":"PX"},"caption":"Bug Reports: A Developer's Best Friend, Not a Burden"},"author":{"@type":"Person","name":"Michael Richey","url":"https://www.richeyweb.com/contact-us","@id":"https://www.richeyweb.com/contact-us#person"}},{"@type":"Article","@id":"https://www.richeyweb.com/blog/personal/someone-elses-code#article","url":"https://www.richeyweb.comblog/personal/someone-elses-code","name":"Someone Else’s Code","headline":"Someone Else’s Code","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/articles/other-peoples-code/other-peoples-code.webp","contentUrl":"https://www.richeyweb.com/images/articles/other-peoples-code/other-peoples-code.webp","width":{"@type":"QuantitativeValue","value":598,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":336,"unitCode":"PX"},"caption":"Someone Else’s Code"},"author":{"@type":"Person","name":"Michael Richey","url":"https://www.richeyweb.com/contact-us","@id":"https://www.richeyweb.com/contact-us#person"}},{"@type":"Article","@id":"https://www.richeyweb.com/joomla-techniques/joomla-article-index-in-a-module-position#article","url":"https://www.richeyweb.comjoomla-techniques/joomla-article-index-in-a-module-position","name":"Joomla Article Index in a Module Position","headline":"Joomla Article Index in a Module Position","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/articles/jooma-article-index-in-a-module-position-720p.webp","contentUrl":"https://www.richeyweb.com/images/articles/jooma-article-index-in-a-module-position-720p.webp","width":{"@type":"QuantitativeValue","value":1280,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":720,"unitCode":"PX"},"caption":"Joomla Article Index in a Module Position"},"author":{"@type":"Person","name":"Michael Richey","url":"https://www.richeyweb.com/contact-us","@id":"https://www.richeyweb.com/contact-us#person"}},{"@type":"Article","@id":"https://www.richeyweb.com/joomla-techniques/how-to-add-custom-scripts-or-stylesheets-to-a-single-joomla-article-without-losing-your-mind#article","url":"https://www.richeyweb.comjoomla-techniques/how-to-add-custom-scripts-or-stylesheets-to-a-single-joomla-article-without-losing-your-mind","name":"Add Custom Scripts or Stylesheets to a Joomla Article","headline":"Add Custom Scripts or Stylesheets to a Joomla Article","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/articles/thumbs-up-kid.webp","contentUrl":"https://www.richeyweb.com/images/articles/thumbs-up-kid.webp","width":{"@type":"QuantitativeValue","value":600,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":337,"unitCode":"PX"},"caption":"Add Custom Scripts or Stylesheets to a Joomla Article"},"author":{"@type":"Person","name":"Michael Richey","url":"https://www.richeyweb.com/contact-us","@id":"https://www.richeyweb.com/contact-us#person"}},{"@type":"Article","@id":"https://www.richeyweb.com/joomla-techniques/build-a-clean-joomla-header-search-popup-in-minutes-for-free#article","url":"https://www.richeyweb.comjoomla-techniques/build-a-clean-joomla-header-search-popup-in-minutes-for-free","name":"Build a Clean Joomla Header Search Popup in Minutes - For Free","headline":"Build a Clean Joomla Header Search Popup in Minutes - For Free","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/articles/build-a-clean-joomla-header-search-popup-in-minutes-for-free/header-search-popup.webp","contentUrl":"https://www.richeyweb.com/images/articles/build-a-clean-joomla-header-search-popup-in-minutes-for-free/header-search-popup.webp","width":{"@type":"QuantitativeValue","value":651,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":366,"unitCode":"PX"},"caption":"Build a Clean Joomla Header Search Popup in Minutes - For Free"},"author":{"@type":"Person","name":"Michael Richey","url":"https://www.richeyweb.com/contact-us","@id":"https://www.richeyweb.com/contact-us#person"}}],"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#article","isPartOf":{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#webpage"},"publisher":{"@id":"https://www.richeyweb.com/#organization"},"citation":[{"@type":"CreativeWork","@id":"https://www.richeyweb.com/software/joomla/plugins/system-headtag#softwareapplication","url":"https://www.richeyweb.com/software/joomla/plugins/system-headtag","name":"System - Head Tag"},{"@type":"CreativeWork","@id":"https://www.richeyweb.com/software/joomla/plugins/content-included#softwareapplication","url":"https://www.richeyweb.com/software/joomla/plugins/content-included","name":"Content - Included"}],"keywords":"iframe, script, style tags, embed code, mod_wrapper, loadmoduleid X, Content - Included, categories, Inline scripts, stylesheets, article content, System - Head Tag, document API, page caching, component rendering, module assignment system, Arbitrary HTML, Embeds, Custom Code, Custom HTML module, mod_custom, Prepare Content, loadposition, mod_custom template override, HTML structure, Reusable Content Blocks, Automatic injection, H1 through H6, toolbar, source view, standard HTML, Full Toolkit, Need Solution, Scripts and styles, Embed codes, Custom module output structure, Headings and formatted content, Joomla editor toolbar, source HTML, document object, content event system, module renderer","articleSection":"Joomla Techniques","url":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles","hasPart":[{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-iframes_2_1"},{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-scripts-and-styles-in-the-page-head_2_2"},{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-arbitrary-html-embeds-custom-code-anything-else_2_3"},{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-when-you-need-more-control-over-module-output_2_4"},{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-reusable-content-blocks_2_5"},{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-headings-and-formatted-content_2_6"},{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-the-full-toolkit_2_7"},{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-a-note-on-how-these-tools-work_2_8"},{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#faqpage"}]},{"@type":"FAQPage","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#faqpage","url":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles","isPartOf":{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#article"},"mainEntityOfPage":{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#webpage"},"mainEntity":[{"@type":"Question","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#question-0","name":"Why does Joomla remove my iframe when I save?\r\n","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#answer-0","text":"Joomla's default editor (TinyMCE) filters out tags it considers potentially unsafe, including iframe, script, and style. This is intentional behavior designed to prevent malicious content from being saved into articles. The solution is not to fight the editor — it's to keep those elements out of the editor entirely, using modules designed for the purpose.","citation":{"@type":"CreativeWork","url":"https://docs.joomla.org/Help5.x:Site_Modules:_Wrapper/en","name":"Help5.x:Site Modules: Wrapper"}}},{"@type":"Question","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#question-1","name":"How do I embed a YouTube video or external page in a Joomla article?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#answer-1","text":"Use mod_wrapper — Joomla's built-in iframe module. Go to System → Site Modules → New, select Wrapper, enter your URL, set dimensions, and save. Then place {loadmoduleid X} in your article where you want it to appear.","citation":{"@type":"CreativeWork","url":"https://docs.joomla.org/Help5.x:Site_Modules:_Wrapper/en","name":"Help5.x:Site Modules: Wrapper"}}},{"@type":"Question","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#question-2","name":"How do I add a script tag or custom CSS to a Joomla article?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#answer-2","text":"You generally shouldn't — scripts and styles belong in the head, not inside article content. System - Head Tag handles this correctly. For cases where you need inline script output as part of module content, use the Custom HTML module with \"Prepare Content\" enabled, which processes output outside the editor's restrictions."}},{"@type":"Question","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#question-3","name":"How do I insert a module into a Joomla article?\r\n","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#answer-3","text":"Joomla's native Content - Load Modules plugin handles this. Once enabled, you can use any of three syntaxes in your article text:\r\n\r\n{loadmoduleid X} — loads a specific module by its ID\r\n{loadposition positionname} — loads all modules assigned to a named position\r\n{loadmodule mod_type} — loads a module by type name\r\nNote that the Content - Load Modules plugin must be enabled, and the module must be assigned to the relevant menu items or All Pages."}},{"@type":"Question","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#question-4","name":"Can I reuse the same content block across multiple articles without copy-pasting?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#answer-4","text":"Yes. Create a Custom HTML module with your content, then insert {loadmoduleid X} in any article where you want it to appear. Edit the module once and every article updates automatically. For injecting the same block automatically into entire categories without editing individual articles at all, Content - Included handles that through rules."}},{"@type":"Question","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#question-5","name":"Do I need a paid plugin to insert HTML into Joomla articles?\r\n","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#answer-5","text":"No. Everything described in this article is either built into Joomla or available free. The editor's tag restrictions exist for security reasons, but Joomla's module system provides clean, supported ways to insert any content — iframes, scripts, custom HTML, reusable blocks — without touching the editor at all."}},{"@type":"Question","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#question-6","name":"How do I insert Google AdSense or other ad code into my articles?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#answer-6","text":"Create a Custom HTML module containing your AdSense code. Because the module lives outside the editor, the tag restrictions don't apply. Then use Content - Included to automatically inject that module after the second paragraph of every article in your chosen categories — no manual editing of individual articles required."}}]},{"@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex","@type":"ItemList","name":"Insert Anything Into Your Joomla Articles","numberOfItems":8,"itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-iframes_2_1","name":"Iframes","url":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#toc-iframes_2_1"}},{"@type":"ListItem","position":2,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-scripts-and-styles-in-the-page-head_2_2","name":"Scripts and Styles in the Page Head","url":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#toc-scripts-and-styles-in-the-page-head_2_2"}},{"@type":"ListItem","position":3,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-arbitrary-html-embeds-custom-code-anything-else_2_3","name":"Arbitrary HTML - Embeds, Custom Code, Anything Else","url":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#toc-arbitrary-html-embeds-custom-code-anything-else_2_3"}},{"@type":"ListItem","position":4,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-when-you-need-more-control-over-module-output_2_4","name":"When You Need More Control Over Module Output","url":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#toc-when-you-need-more-control-over-module-output_2_4"}},{"@type":"ListItem","position":5,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-reusable-content-blocks_2_5","name":"Reusable Content Blocks","url":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#toc-reusable-content-blocks_2_5"}},{"@type":"ListItem","position":6,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-headings-and-formatted-content_2_6","name":"Headings and Formatted Content","url":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#toc-headings-and-formatted-content_2_6"}},{"@type":"ListItem","position":7,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-the-full-toolkit_2_7","name":"The Full Toolkit","url":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#toc-the-full-toolkit_2_7"}},{"@type":"ListItem","position":8,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#articleindex-toc-a-note-on-how-these-tools-work_2_8","name":"A Note on How These Tools Work","url":"https://www.richeyweb.com/joomla-techniques/insert-anything-into-your-joomla-articles#toc-a-note-on-how-these-tools-work_2_8"}}]}]}
```
