Custom dataPro
Dynamic Shortcodes MCP: lint, test and save shortcodes
Dynamic Shortcodes uses a compact curly-brace language, {post:title} or {acf:field @option}, where one misplaced colon gives an obscure parser error. The Dynamic Shortcodes MCP abilities in GoBuildWP Pro let an agent lint a string before anyone sees it, run it against the live site with a chosen post as context, and save it as a Power Shortcode when it needs privileges ordinary content does not have.
Under each article, show the featured image of the next post.
wppilot/dynamic-shortcodes-check-setupReadConfirms the media and post types are accepted and that post content is an enabled area. The later evaluation and Power Shortcode writes are critical: they require Developer Full Access, enabled abilities, confirm=true and any configured approval.
wppilot/dynamic-shortcodes-validate-shortcodeReadLints a media:image shortcode whose ID comes from the next post's featured image, found with a call: to get_next_post, nested two levels deep, and reports no errors.
wppilot/dynamic-shortcodes-evaluate-shortcodeWriteRun with a post_id, it returns requires_power: true, because {call:} is only allowed inside a Power Shortcode.
wppilot/dynamic-shortcodes-list-power-shortcodesReadChecks that the name next-post-image is not already taken.
wppilot/dynamic-shortcodes-create-power-shortcodeWriteSaves the string as next-post-image after linting it again.
- Edition
- Pro
- Abilities
- 9
- Requires
- WordPress 6.9+, PHP 8.0+, Dynamic Shortcodes 1.9.0+
Worked example
A shortcode that needs the privileged context
Expected outcome to verify on the installed stack; this sequence has not been recorded as a runtime test.
Authors place {power:next-post-image} in the article template and it renders the next post's image on the front end. It shows as literal text on any surface that is still switched off in the plugin's settings.
Lint without evaluating. Review and authorize live evaluation separately, using a bounded staging input. Treat requires_power as a privilege escalation requiring review, not an automatic retry; inspect the rendered shortcode result afterwards.
dynamic-shortcodes-check-setupConfirms the media and post types are accepted and that post content is an enabled area. The later evaluation and Power Shortcode writes are critical: they require Developer Full Access, enabled abilities, confirm=true and any configured approval.
dynamic-shortcodes-validate-shortcodeLints a media:image shortcode whose ID comes from the next post's featured image, found with a call: to get_next_post, nested two levels deep, and reports no errors.
dynamic-shortcodes-evaluate-shortcodeRun with a post_id, it returns requires_power: true, because {call:} is only allowed inside a Power Shortcode.
dynamic-shortcodes-list-power-shortcodesChecks that the name next-post-image is not already taken.
dynamic-shortcodes-create-power-shortcodeSaves the string as next-post-image after linting it again.
Abilities
What each call does on this plugin
| Ability | What it does here | Undo and limits |
|---|---|---|
dynamic-shortcodes-check-setupdynamic-shortcodes-get-context | Setup reports accepted shortcode types, which data plugins were detected (ACF, WooCommerce, JetEngine, Meta Box, Pods, Toolset, ACPT) and enabled_areas. get-context lists the real fields one type can return on this site. | Read-only. The other abilities only register once the minimum version check passes. |
dynamic-shortcodes-compose-shortcodedynamic-shortcodes-validate-shortcode | Compose builds a string from type, arguments, keyargs, filters and a fallback and lints it; validate lints a hand-written string and returns each error. | Syntax only. A valid shortcode can still resolve to nothing on a given post. |
dynamic-shortcodes-evaluate-shortcode | Runs the string against the live site, optionally with post_id set as the current post, and returns the value and its type. A shortcode that needs privileges comes back as requires_power: true with no result. | Not read-only: {set:} changes variables, {call:} runs PHP, and a Power Shortcode can do anything it was written to do. Not retried automatically. |
dynamic-shortcodes-list-power-shortcodesdynamic-shortcodes-create-power-shortcodedynamic-shortcodes-edit-power-shortcodedynamic-shortcodes-delete-power-shortcode | Lists saved Power Shortcodes; create and edit lint the code first and refuse broken syntax with invalid_shortcode_syntax; create never overwrites an existing name. | No change-log undo. Delete returns the deleted code and description so the agent can recreate it. |
Reference: /docs/reference/dynamic-shortcodes
Documented source abilities; live registration can be narrower. Edition and effect labels describe the source catalogue. The installed schema, dependency versions, licence, WordPress capability, safety profile and per-ability policy determine availability; labels alone do not prove confirmation or recovery.
Limits
Where a working shortcode still will not render
- Every content area, including post content, blocks, widgets, Elementor, Bricks, Oxygen, Breakdance and WPBakery, defaults to off in the plugin's settings.
- Divi, Etch, Mosaic and Beaver Builder have no Dynamic Shortcodes integration; a shortcode typed there stays literal.
- Shortcodes resolve on the front end and in live previews, not inside the editor's input box, so evaluate is the way to check a value first.
- Power Shortcode writes cannot be rolled back from the change log. An evaluation is recorded as irreversible, without a restorable before-image; any effect belongs to the shortcode itself.
Data model
Most shortcodes are not stored anywhere
An ordinary dynamic shortcode is not a record. It lives inline where someone typed it, in post content, a Gutenberg block, a text widget or a Bricks element's text, and the plugin resolves it at render time. Elementor, Oxygen and Breakdance take it through their dynamic-tag pickers instead of a text field. Every one of those surfaces is off until enabled in the plugin's settings, which is why an unenabled shortcode prints as literal text.
Power Shortcodes are the stored part. Dynamic.ooo describes them as a name plus content, created by administrators and then usable by contributors anywhere as {power:name}. They run in a privileged context that allows features ordinary content cannot use, such as {call:...} for PHP functions. The plugin saves them through its own manager; its storage format is not public, so GoBuildWP records these writes without an undo.
For an agent the useful split is: lint freely while drafting, then review and authorize live evaluation, and treat creating a Power Shortcode as publishing code, because every author on the site can then run it.
Drafting shortcodes safely
Find the real field name before writing the shortcode
Most broken dynamic shortcodes are not syntax errors. They name a field that does not exist on this site, or exists under a slightly different key. dynamic-shortcodes-get-context answers that directly: give it a type such as acf, post, user, term, query or woo and it returns the fields available here with their possible result types, paginated, with a case-insensitive name_pattern filter. check-setup tells you which data plugins it detected, from ACF and Meta Box to JetEngine, Pods, Toolset, ACPT and WooCommerce, so you know which types are worth asking about.
With the field confirmed, dynamic-shortcodes-compose-shortcode builds the string from structured parts: type, positional arguments, keyargs, filters and a fallback. It lints the result as it goes and returns the shortcode with any errors, which is easier to review than a hand-typed string full of colons and at-signs.
A drafting session that needs no write access
The setup check, get-context, compose, validate and the Power Shortcode list are all read-only, so they work under the Read Only profile. That covers a lot: an agent can design a shortcode for a product spec table, check every field it touches, and hand over a linted string for a person to paste into a template, without being able to run anything on the live site.
Evaluation is the line. dynamic-shortcodes-evaluate-shortcode is not marked read-only because {set:} changes variables and a Power Shortcode can do whatever it was written to do, so Read Only leaves it out. When you do evaluate, test two posts: one where the field has a value and one where it is empty. The second run is the only way to see whether the fallback you composed actually appears.
Reviewing the Power Shortcodes already on a site
Power Shortcodes accumulate. Someone writes one for a sidebar, another for a single campaign, and a year later nobody knows which still matter. dynamic-shortcodes-list-power-shortcodes returns every name with its code and description, and an agent can run validate over each code to flag any that no longer lint, and point out which use {call:} and therefore run PHP.
Before deleting or renaming one, find where {power:name} is used. search-content covers public content types, but shortcodes typed into builder data, widgets or templates may not show up there, so check those surfaces as well. Edits return the previous code and deletes return the deleted code and description; keep that output, because the change log holds no undo for these writes and that response is how you put a shortcode back.
- Treat a new Power Shortcode like a code deploy: every author can call it once it exists.
- Name them for what they render, such as next-post-image, not for the campaign that needed them.
- If a shortcode renders as text after all this, re-check enabled_areas for the surface it sits in.
Questions
Dynamic Shortcodes questions
Why does my dynamic shortcode show up as plain text on the page?
The surface it sits in is not enabled. check-setup lists enabled_areas; every area starts off and is switched on in the plugin's own settings.
What does requires_power mean when the agent evaluates a shortcode?
The shortcode uses something only allowed in a Power Shortcode, such as {call:}. It is not an error. The route is to save it as a Power Shortcode and use {power:name} in content, but Power Shortcodes can run code with side effects, so a person should review what it does and approve saving it first.
Can I use Dynamic Shortcodes inside Divi or Beaver Builder?
No. The plugin does not integrate with them, so use those builders' own dynamic content.
Is it safe to let an AI agent evaluate shortcodes on a live site?
Only with care. Evaluation runs the shortcode for real, and variables, PHP calls and Power Shortcodes can have side effects. Linting is the side-effect-free check.
Where these facts come from
GoBuildWP behaviour is taken from the plugin source and the ability reference; third-party details from the vendor documentation below, checked by the GoBuildWP team.
Dynamic Shortcodes is a separate product; no partnership or endorsement is implied.