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 displaycolumns— Grid column countdescription— 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 episodesstyle— Display styleplayer— 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 categorylimit— Maximum number of productscolumns— 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.