Skip to main content
Joomla Shortcodes plugin by Joomill

Joomla Shortcodes

Build it once. Use it everywhere on your Joomla site.

Store a phone number, a CTA block, a tracking script or a dynamic PHP snippet once. Drop a short tag like {phone} or [cta] anywhere – articles, modules, custom HTML, template overrides, even YOOtheme Pro – and Shortcodes renders it on every page. Change it in one place, it updates everywhere.

Joomla 6 ready HTML, PHP, JS, CSS & text One license, all client sites
Shortcodes component in the Joomla administrator

One small change, a site-wide hunt

  • Change one thing, hunt everywhere. Update a phone number and you are searching and replacing for an hour, and you will still miss a spot.
  • Copy-pasted code rots. The same snippet lives in fifteen articles. Fix a bug in one, the other fourteen stay broken.
  • Editors break layouts. Hand a client raw HTML or a script to paste and something will eventually get mangled.

The hidden cost: change one detail and you are hunting through the whole site, and you will still miss a spot. Multiply that by every client site you maintain.

One place. One short tag. Done.

1. Create the snippet once

In the Shortcodes component, write your content or code in a proper CodeMirror editor. Pick a type: HTML, PHP, JavaScript, CSS or plain text.

2. Give it a tag

Choose a tag and a delimiter style: {phone}, [cta] or (price). Three delimiter options keep you clear of conflicts with other extensions.

3. Drop it anywhere

Place the tag wherever you want it. Shortcodes replaces it with the stored output the moment the page renders. Edit the snippet once and every page updates.

Backend list of shortcodes with Title, Tag, Delimiter, Type, Access and Status columns

Everything in one package

Built for web professionals

Three parts install in one go: the component to manage shortcodes, the system plugin that renders them, and an editor button to insert them.

Five content types

HTML, PHP, JavaScript, CSS or plain text per shortcode. From a simple phone number to a dynamic PHP block or a page-specific style.

Three delimiters

Pick curly { }, square [ ] or round ( ) brackets per shortcode to avoid conflicts with other extensions.

Dynamic attributes

Pass parameters in the tag itself. They arrive in your PHP snippet as $params, so one shortcode behaves differently per placement.

Nested shortcodes

A shortcode's output can contain other shortcodes. Resolved recursively up to ten levels deep, with a built-in guard against infinite loops.

Article context in PHP

On an article page your PHP snippet automatically receives the full $article object, even inside YOOtheme where Joomla skips normal content processing.

Access & status

Each shortcode has a Joomla access level and a publish state. Show content to specific user groups, or switch a snippet off without deleting it.

Editor button picker

A button in the article editor opens a searchable list of your published shortcodes. Filter by title or tag, click to insert at the cursor.

CodeMirror editor

Write snippets in a real monospace code editor instead of a WYSIWYG that mangles your markup.

Notes & versioning

Keep an internal note on where and why each snippet is used, plus version notes. Essential when you manage dozens of them.
Shortcode edit screen with Title, Tag, Delimiter, Type, the CodeMirror editor, Access, Status and Internal Note

Security

An honest model for running PHP

PHP snippets run with full server privileges, exactly like a Joomla custom PHP module. So the plugin runs a PHP snippet only if its author is a Super User.

A manager with lower privileges who can operate the component cannot run PHP, and so cannot turn component access into code execution on your server. HTML, JavaScript, CSS and text have no such restriction.

  • No function blacklist. Blacklists give a false sense of safety and are trivial to bypass. The real control is who may store the code.
  • Errors logged in full to the Joomla log and shown as an HTML comment for debugging.
  • No path disclosure. Server paths only appear in the source when Joomla Debug mode is on.
  • Front-end only. Admin, feeds, JSON and raw output are never touched.

Performance

Light by design

The render logic does as little as possible, so it stays out of your way.

Skips clean pages

Any page without a single opening delimiter is passed through untouched. No tags, no work.

Only known tags

The matching pattern is built from your registered tags only, so stray brackets in your content are never touched. Longer tags win over shorter ones.

Front-end, HTML only

Only real HTML responses on the public site are processed. Admin, feeds and JSON stay out of scope.

Who it's for

One tool, three jobs solved

Agencies

Maintain reusable blocks once and roll them out across every client site. It keeps working inside the page builder you already use, so nothing breaks at handover.

Editors

Give non-technical authors a safe, simple way to place reusable and even dynamic blocks, while the PHP power stays locked behind the Super User. You build the snippet, the client places the tag.

Developers

Build dynamic content in a few lines of PHP with inline attributes, instead of developing a custom module or plugin every time.

One license. All your client sites.

Buy once, install on every Joomla site you build or maintain. No per-domain fees, ever.

  • Unlimited installations
  • 1 year of updates on every site
  • 1 year of personal support
  • No per-site fee, no domain lock

FAQ

Frequently asked questions

Does it work inside YOOtheme Pro?

Yes, and that is the whole point. YOOtheme Pro and similar page builders skip Joomla's normal onContentPrepare content processing, which is why most shortcode plugins fail inside them. Shortcodes works on the full page output through onAfterRender, so your tags render in builder elements, modules and template overrides just as well as in article text.

Is it safe to let shortcodes run PHP?

PHP snippets run with full server privileges, exactly like a Joomla custom PHP module. The plugin therefore executes a PHP snippet only when its author is a Super User. A lower-privileged manager who can operate the component cannot run PHP and cannot escalate component access into code execution. HTML, JavaScript, CSS and text snippets have no such restriction.

Can non-technical editors use it?

Yes. You build the snippet as the developer, the client only places a short tag. The editor button opens a searchable picker of your published shortcodes, so editors never have to remember or retype a tag.

Will it slow my site down?

No. Pages without any opening delimiter are skipped immediately. The matching pattern is built only from your registered tags, so stray brackets in your content are never touched, and only real HTML responses on the public site are processed.

Can one shortcode behave differently per page?

Yes. Pass attributes inline, for example {latest-articles category="news" limit=5}. They arrive in your PHP snippet as $params. Quoted, single-quoted and bare values are all supported.

Is my license valid for multiple sites?

Yes. One PRO license covers every site you build or maintain. No per-site fees, no seat limits. The same applies to all Joomill PRO extensions.

Which Joomla and PHP versions are supported?

Joomla 5 and Joomla 6, on PHP 8.1 or higher. The full package installs in one go and ships in English, Dutch, German, French, Spanish and Italian.

How fast is support?

There is a real Joomla developer behind the plugin. Most tickets get a reply within hours, not days, and every reply comes from the developer who wrote the code.

Jeroen Moolenschot
Personal Support

You email Jeroen. Jeroen emails you back.

Joomill — developer, Joomla since 2006, JED Listing Expert
"I built Shortcodes for my own projects and I support it myself. If you hit a bug or need a feature added, you email me and I get back to you - usually within a few hours."

< 24h

Average reply on weekdays

16+

Extensions maintaining

100%

Replies from the developer

Stop repeating yourself across your Joomla site

Build a snippet once, drop a short tag anywhere, even inside YOOtheme Pro. Joomla 6 ready, one license for all your client sites, support from a real developer.

One license, unlimited sites · Personal support from the developer