Shortcode Reference
Internal reference for the custom shortcodes available on this site. Not linked in navigation â bookmark this URL. For implementation detail (template files, CSS classes, ACF field names), see this repo's MINISTRIES-CPT.md and the child theme's CLAUDE.md.
Ministry Shortcodes
Shortcodes for displaying ministry posts (the Ministries custom post type) in page/post content.
[ministry_list] — Ministry Listing / Card Grid
Shows one or more ministries as a card grid: image, title, excerpt, contact info, meeting schedule, and a “Learn more” link. Use on any listing page, or to embed a single ministry’s card elsewhere.
[ministry_list]
[ministry_list categories="housing-ministries" columns="2"]
[ministry_list categories="justice-ministries" exclude_categories="partner-organizations"]
[ministry_list post="visual-arts-ministry" show_schedule="false"]
| Attribute | Default | What it does |
|---|---|---|
post | (none) | Slug or numeric ID of a single ministry to show. Overrides categories/count/columns/orderby/order entirely. |
categories | (all) | Show only ministries in this Ministry Category (slug). Comma-separate multiple slugs to match any of them. |
exclude_categories | (none) | Leave out ministries in this Ministry Category (slug). Comma-separate to exclude any of them. Combines with categories. Ignored in single-post mode. |
count | (all) | Maximum number of ministries to show. |
columns | 1 | 1 or 2. Always collapses to one column on mobile. |
orderby / order | title / ascending | How to sort the list. |
show_title | true | Set false to hide the title. |
show_excerpt | true | Set false to hide the excerpt (WordPress excerpt, not the Ministry Description field). |
show_image | true | Set false to hide the featured image. |
show_contact | true | Set false to hide the contact name/email line. |
show_schedule | true | Set false to hide the meeting schedule line. |
show_link | true | Set false to hide the “Learn more” link. |
show_category_pills | false | Set true to show small, non-interactive pills for each ministry’s own categories, just under the title. Not the same as categories/exclude_categories above — those pick which ministries show; this just displays each one’s categories on its own card. |
card_style | true | Set false to strip the card’s rounded corners, border, and padding — useful when dropping the list into a page section that already has its own container styling. |
dark_mode | false | Set true when placing the list inside a dark-background container/row — gives each card a light #eaeaea fill so the title/text/links stay readable. Combines fine with card_style="false". |
[ministry_directory] — Alphabetical Directory with Category Filter
Shows published ministries alphabetically by title, with category filter pills above the list — visitors can click one or more categories to narrow the list (no page reload), or click “All” to reset. Unlike [ministry_list], the filtering happens in the visitor’s browser rather than being fixed when the page is built.
Two modes, depending on whether categories is set:
Naked mode — every ministry, every category gets a pill:
[ministry_directory]
Whitelist mode — only these categories get a pill, and only ministries tagged with at least one of them appear at all:
[ministry_directory categories="music,choirs,justice-ministries,formation,youth"]
Whitelist mode is for “utility” categories that group ministries in ways that cross over the main categories (e.g. “Vestry Committees”) without cluttering the pill row. Leaving a utility category out of categories hides its pill and keeps utility-only-tagged ministries out of the directory entirely — but a ministry tagged with both a utility category and a whitelisted one still shows up and still responds to that whitelisted category’s pill. A “Partner Organization” that’s also tagged “Justice Ministries” will appear when Justice Ministries is selected, even though “Partner Organizations” itself was never in the whitelist and other partner orgs without that tag stay hidden.
Leave a category out entirely, regardless of mode:
[ministry_directory exclude_categories="partner-organizations"]
| Attribute | Default | What it does |
|---|---|---|
columns | 2 | 1 or 2. Always collapses to one column on mobile. |
categories | (none — naked mode) | Comma-separated Ministry Category slugs. When set, switches to whitelist mode: pills only for these categories, and only ministries tagged with any of them (not necessarily all) appear at all. Pills are always alphabetized, regardless of the order slugs are listed in. |
exclude_categories | (none) | Leave out ministries in this Ministry Category (slug), comma-separated for more than one. Also removes that category’s filter pill. Combines with categories in whitelist mode. |
show_title / show_excerpt / show_image / show_contact / show_schedule / show_link | all true | Same meaning as [ministry_list]. |
show_category_pills | false | Same meaning as [ministry_list] — separate from this shortcode’s own clickable filter pill bar above the grid. |
card_style | true | Same meaning as [ministry_list]. |
dark_mode | false | Same meaning as [ministry_list]. |
enable_search | false | Set true to add a search box (matches ministry title only) above the filter pills, combined with any active category filter. |
sync_url | false | Set true to keep pill/search selections in the page’s URL, so the browser’s Back/Forward buttons step through filter changes and a link with ?category=some-slug lands pre-filtered. Meant for one directory per page — see below. |
curated_pills | false | Set true to build the default pill row (naked mode only) from categories with “Show in Directory Navigation” turned on, instead of every category in use. See below. |
Filter pills only appear for categories that actually have at least one (non-excluded) ministry in them. Selecting more than one category shows ministries in any of the selected categories, not just ministries in all of them at once.
The Ministry Directory Page
The site’s one canonical directory page uses [ministry_directory] with enable_search, sync_url, and curated_pills all turned on, plus show_category_pills="true" so each card shows its own categories too.
Choosing which categories show as pills by default: each Ministry Category has a “Show in Directory Navigation” toggle (Ministries → Ministry Categories → edit a category). It’s off by default — a category won’t appear as a default pill on the directory page until this is turned on for it. Every ministry is still listed on the page regardless of this toggle; it only controls which pills show up front.
Category pills elsewhere on the site (show_category_pills="true" on a [ministry_list]/[ministry_directory] card) automatically link into this page, filtered to that one category — even for a category that isn’t one of the default pills there. Clicking one from elsewhere navigates to the directory page pre-filtered; clicking one on the directory page itself filters in place without a reload.
[ministry_events] — Upcoming Events for One Ministry
Shows the upcoming events tied to a ministry’s “Event Category” field. Runs automatically on every ministry’s own page — you generally won’t need to add this yourself.
[ministry_events]
No attributes — always reads the current ministry post’s “Event Category” and “Number of Events” fields. Renders nothing if “Event Category” is empty.
[cf] / [cf_if] — Show a Ministry Field Directly
For editing a specific ministry’s freeform content area and pulling in one of its own field values, or conditionally showing/hiding a block of content. Most ministries never need these — the standard fields already display automatically at the top of every ministry page.
[cf field="contact_email"]
[cf_if field="link"]
Check out our website!
[/cf_if]
Available field names: contact_name, contact_email, ministry_description, meeting_schedule, meeting_location, link, link_text, event_category, num_events.
[featured_image] — Show a Post’s Featured Image
Outputs a post’s featured image. Mainly useful inside a ministry’s freeform content area if you want the image somewhere other than its normal spot.
[featured_image size="medium"]
| Attribute | Default | What it does |
|---|---|---|
size | medium | Any registered WordPress image size (thumbnail, medium, large, full, etc.) |
post_id | current post | Show a different post’s featured image instead. |
Event Shortcodes
Two shortcodes for displaying events in page/post content, built to work inside narrow SiteOrigin page-builder columns (TEC’s native [tribe_events view="list"] always renders full-width, which these avoid). Both render the same layout: featured image (left) | title, date/time/venue, Register/Zoom/Watch Online/Watch Recording/Download Slides links, and an excerpt (right), followed by a “View Full Calendar” link (to /connect/calendar/, the site’s main calendar page).
[tribe_events_list] — Upcoming Events
Shows upcoming events, soonest first.
[tribe_events_list]
[tribe_events_list category="worship" limit="5" show_venue="false" show_zoom="true"]
| Attribute | Default | What it does |
|---|---|---|
category | (all) | Show only events in this category (slug). |
tag | (all) | Show only events with this tag (slug). |
limit / per-page | TEC default | Maximum number of events to show. |
featured | false | Set true to show only featured events. |
tax-operand | AND | When combining category and tag: AND (must match both) or OR (either). |
show_image | true | Set false to hide the featured image. |
show_description | true | Set false to hide the excerpt. |
show_venue | true | Set false to hide venue name(s) from the date line. |
show_registration | true | Set false to hide the “Register” link. It’s also automatically hidden once an event is past, regardless of this setting. |
show_zoom | true | Set false to hide the “Join via Zoom” link. It’s also automatically hidden once an event is past, regardless of this setting. |
show_stream | true | Set false to hide the “Watch Online” link. |
show_recording | true | Set false to hide the “Watch Recording” link. |
show_slides | true | Set false to hide the “Download Slides” link. |
show_view_calendar | true | Set false to hide the “View Full Calendar” link at the bottom. |
If an event has more than one venue set (e.g. a hybrid event with an in-person hall and “Online via Zoom”), all of them are listed in the date line, joined with “&”.
[tribe_events_list_past] — Past Events
Shows past events, most recent first (a custom shortcode — TEC doesn’t offer this natively).
[tribe_events_list_past]
[tribe_events_list_past category="youth" num="20" year="2025"]
| Attribute | Default | What it does |
|---|---|---|
category | (all) | Show only events in this category (slug). Comma-separate multiple slugs to match any of them — don’t repeat the attribute itself, that silently overwrites rather than combining. |
num | 10 | Maximum number of events to show. |
year | (none) | Restrict to a specific calendar year, e.g. year="2025". |
before | now | Only show events before this date/time. Accepts 2025-06-01, "June 1, 2025", or relative phrases like "3 months ago". |
after | (none) | Only show events after this date/time (same format options as before). |
show_image | true | Set false to hide the featured image. |
show_description | true | Set false to hide the excerpt. |
show_venue | false | Set true to show venue name(s) in the date line. |
show_registration | false | Set true to show the “Register” link. Since every event here is already in the past, it never actually shows regardless of this setting. |
show_zoom | false | Set true to show the “Join via Zoom” link. Since every event here is already in the past, it never actually shows regardless of this setting. |
show_stream | true | Set false to hide the “Watch Online” link. |
show_recording | true | Set false to hide the “Watch Recording” link. |
show_slides | true | Set false to hide the “Download Slides” link. |
show_view_calendar | true | Set false to hide the “View Full Calendar” link at the bottom. |
If year is set, it overrides before/after. Events are always required to have actually happened — a future before or year won’t pull in upcoming events, it just narrows the past-events window up to right now.
Where the Register / Zoom / Watch Online / Watch Recording / Download Slides Links Come From
Set per-event in the WordPress event editor, in the Links box in the sidebar (not TEC’s own “Event Website” field, which isn’t used by these shortcodes): Registration URL, Zoom Link, Stream Link, Recording URL, Slides URL. The last two are meant to be filled in after the event, once its recording/slides are ready. Each link only appears if its field has a value on that event, and only if its corresponding show_* flag isn’t set to false — except Register and Join via Zoom, which are also hidden automatically once the event is past, no matter what show_registration/show_zoom are set to.
Staff Shortcodes
One shortcode for displaying staff posts (clergy, staff, vestry, etc. — grouped by the Staff Group taxonomy) in page/post content. Reads the same fields as the “Staff Options” box on a staff member’s edit screen.
[stmarks_staff] — Staff Grid / Card List
Shows one or more staff members, grouped by Staff Group (cat=). Two layouts, switched with layout=: grid (default — vertical tiles, photo on top, everything centered, columns default to 4) or card (horizontal, like [ministry_list] — photo on the left, text left-aligned to its right, columns default to 2 and only 1 or 2 are supported, collapsing to a single column below 992px — the same breakpoint the site header’s own mobile menu switches on at).
[stmarks_staff cat="clergy"]
[stmarks_staff cat="clergy" layout="card" ratio="portrait"]
[stmarks_staff cat="staff" columns="4" ratio="square" show_content="false"]
[stmarks_staff cat="clergy,vestry"]
| Attribute | Default | What it does |
|---|---|---|
cat | (all) | Show only staff in this Staff Group (slug, e.g. clergy, staff, vestry). Comma-separate multiple slugs to match any of them. |
layout | grid | grid (vertical tiles) or card (horizontal, like [ministry_list]). |
columns | 4 (grid) / 2 (card) | Grid: 1-6. Card: 1 or 2 only (out-of-range values are clamped). Leave unset for the right default per layout. |
items | 100 | Maximum number of staff to show. -1 for no limit. |
orderby / order | menu_order / ASC | menu_order matches the drag-and-drop order set on the Staff list screen in wp-admin. |
ratio | portrait | Photo aspect ratio: square (1:1), portrait (3:4), landscape (4:3), or wide (16:9). Photos always crop to fit — never stretched/warped, regardless of the original photo’s own dimensions. |
show_content | false | Set true to show the staff member’s bio/excerpt below their title. |
link | true | Set false to stop the photo and name from linking to that staff member’s own page. |
Email and phone (if set) each render on their own line, icon plus the actual address/number, italicized. Facebook/X/Instagram/LinkedIn (if set) render as a small row of icon-only links below that.