Documentation / Shortcode Reference

Shortcode Reference

Complete reference for all 15 Luminal CMS shortcodes across 10 modules. Shortcodes use the [[type:slug]] syntax and are processed by the shortcode parser when pages render.

Gallery Shortcodes

Module: GalleryManager

Image Gallery

[[image-gallery:slug]]

Renders an image gallery from admin/data/galleries/images/{slug}.json. Displays images in the configured layout (grid, masonry, or rows) with lightbox support.

Alias:

Video Gallery

[[video-gallery:slug]]

Renders a video gallery from admin/data/galleries/videos/{slug}.json. Videos display as thumbnail grids with lightbox player.

Alias:

PDF Gallery

[[pdf-gallery:slug]]

Renders a PDF gallery from admin/data/galleries/pdfs/{slug}.json. PDFs display as thumbnail cards with download/view links.

Alias:

Combined Gallery

[[gallery:slug]]

Renders a combined gallery from admin/data/galleries/combined/{slug}.json. Supports mixed media types (images, videos, PDFs) in a single gallery.

Content Shortcodes

Panel

[[panel:filename.php]]

Includes a PHP panel file from the panels/ directory. Used for Content Stacks, storefronts, and custom components. Panels must be listed in admin/data/panels_whitelist.json. Some panels are singletons (e.g., panel-events.php, panel-store-csv.php) and can only appear once per page. Query parameters can be passed after the filename.

AIP Page

[[aip:slug]]
[[aip-page:slug]]
[[ai-page:slug]]

Renders an AI-generated page from admin/data/AIP_Pages/{slug}/index.html. Legacy shortcode from the former AIPageMaker module — still functional.

YouTube Playlist

Module: YouTubePlaylist

[[youtube-playlist:slug]]
[[yt-playlist:slug]]

Renders a YouTube playlist player with video grid from admin/data/youtube_playlists/{slug}.json. Results are cached for 15 minutes. Pagination is supported for large playlists.

Attributes:

  • limit — Maximum number of videos to display
  • columns — Grid column count
  • description — Show/hide video descriptions ("true" or "false")
[[youtube-playlist:live-sessions limit="10" columns="3" description="true"]]

Podcast

Module: PodcastManager

[[podcast-feed]]
[[podcasts]]

Renders a podcast episode listing from the Podcast Manager.

Aliases: ,

Attributes:

  • limit — Maximum number of episodes
  • style — Display style
  • player — Show audio player ("true" or "false")
  • covers — Show episode cover art ("true" or "false")
[[podcast-feed limit="5" player="true" covers="true"]]

NotebookLM Audio

Module: AIResources

[[nlm-podcast:slug]]
[[nlm-audio]]
[[notebooklm]]

Renders NotebookLM AI-generated podcast audio from media/notebooklm/{slug}/assets/. Episodes display newest first.

Attributes:

  • limit — Maximum number of audio items
[[nlm-podcast:episode-recap limit="3"]]

Vstats (Analytics)

Module: Vstats

[[vstats]]
[[vstats-widget]]
[[site-stats]]

Renders a site analytics widget showing visitor statistics.

Attributes:

  • style — Display style: "dark" (default), "light", or "minimal"
  • show — Comma-separated list of metrics: "visitors", "pageviews", "downloads", "today"
  • podcasts — Include podcast stats ("true" or "false")
  • period — Time range: "7d" (default), "30d", or "today"
[[vstats style="light" podcasts="true" period="30d"]]

Store

Module: MyStore

[[store]]
[[mystore]]

Renders the MyStore product storefront with shopping cart and checkout. Includes products from both MyStore and Printful (if configured).

Affiliate Products

Module: AffiliateProducts

[[affiliate-products]]
[[affiliates]]

Renders an affiliate product grid. All product cards include rel="noopener nofollow sponsored" for FTC compliance.

Attributes:

  • category — Filter by product category
  • limit — Maximum number of products
  • columns — Grid column count
[[affiliate-products category="studio-gear" limit="6" columns="4"]]

Single Affiliate Product

[[affiliate-product:product-id]]

Renders a single affiliate product card by its ID from the Affiliates admin.

Events

Module: EventsManagerPro

[[event:event-id]]

Renders a single event card from admin/data/events_master.json with date, venue, description, and action buttons.

Shortcode Syntax

With slug: [[shortcode:slug-name]] — the slug identifies which data to load

With attributes: [[shortcode:slug key="value"]] — override defaults with named params

Without slug: [[shortcode]] or [[shortcode key="value"]] — for global shortcodes (vstats, store, podcast-feed)

Where Shortcodes Work

Shortcodes are processed in page content (left and right columns in Page Manager), Content Stacks, and any HTML field processed by apply_shortcodes().

Tips

  • Shortcodes are case-insensitive for the type but case-sensitive for the slug.
  • Multiple shortcodes can appear on the same page — they render in order.
  • Use the CPM Blocks sidebar in Page Manager for one-click shortcode insertion.
  • YouTube playlists and affiliate categories auto-appear as CPM pills when created in their admin modules.