Embedding league results
Purpose
Once a season is live in Match Admin, you'll usually want fixtures, tables or individual match reports to appear on your public website. There are three patterns, in order of preference:
- Payload block — for pages on your nooQ-hosted Payload site. Fastest, theme-aware, no iframe.
- Iframe — for external sites (WordPress, Wix, Squarespace) or anywhere you can't add a Payload block.
- Direct link — for newsletters, social posts and chat.
When to use which
| Where the page lives | Use | |---|---| | A page on your nooQ Payload site | Payload block (NooqGolfCompetition or Match Report) | | A WordPress / Wix / Squarespace site | Iframe | | Newsletter, social post, Slack | Direct link |
Payload block (recommended for nooQ sites)
The NooqGolfCompetition block fetches HTML from the league app server-side and injects it into the page. No iframe, no scroll-within-scroll, inherits your site theme.
How to add one
- Edit a Page > Add Block > Nooq Golf Competition.
- Cascading selectors fill in:
- Org — auto-set to your league org name (from League Settings).
- Competition — pick from the list (e.g. "NLCGA Scratch League").
- Season — pick the season ("2026").
- Division — only for multi-division leagues; pick one.
- Display mode:
- League — fixtures + standings table.
- Fixtures only — schedule with no table.
- Team spotlight — one team's recent results.
- Match report — embed a single match (an extra selector picks the fixture).
- Save. The block fetches and renders on next page load.
Available block variants
- NooqGolfCompetition — the main one. League/fixtures/team views.
- MatchReport — pick a specific fixture and embed its report.
- The block picker shows what's available; if you don't see one of these, the league plugin isn't registered for your tenant — talk to nooQ Support.
Iframe (for WordPress / external sites)
For any site you can't add Payload blocks to, embed via iframe pointing at the league app's public URL.
URL pattern
https://league.nooqgolf.com/league/{org}/{competition}/{season}/{division}/?refresh=60
Components:
{org}— your league org name, e.g.NLCGA{competition}— competition shortcode, e.g.scratch-league{season}— season identifier, e.g.2026{division}— division shortcode, e.g.division-1(or omit for un-divisioned leagues)
Query parameters:
refresh=60— auto-refresh every 60 seconds (handy for live results pages).view_type=— override the layout:league-table,fixtures,full(table + fixtures),team.
Get the exact URL from Payload
- Add the NooqGolfCompetition block in a draft page (don't publish), pick the selectors, and use the "Resolved URL" preview to copy the canonical URL. Then delete the draft.
Embed code (WordPress / generic HTML)
<iframe
src="https://league.nooqgolf.com/league/NLCGA/scratch-league/2026/division-1/?refresh=60"
width="100%"
height="600"
frameborder="0"
style="border:none;border-radius:8px;"
loading="lazy"
title="NLCGA Scratch League 2026 — Division 1">
</iframe>
In WordPress:
- Add a Custom HTML block (or the Classic editor "Text" mode).
- Paste the snippet above with your URL.
- Update the page.
Some WordPress security plugins block iframes by default — whitelist league.nooqgolf.com if the embed shows as blank.
Iframe sizing
- A league table needs roughly 600 px tall for ~12 teams. Add 30 px per extra team row.
- For fixtures view, allow 800–1000 px depending on the number of upcoming fixtures.
- The iframe content is responsive; the iframe element itself isn't. Use a wrapper with CSS aspect-ratio if you want fluid resizing.
Direct link (for newsletters / social)
Just share the URL https://league.nooqgolf.com/league/{org}/{competition}/{season}/{division}/. The league app renders a standalone page suitable for browsing on its own.
Common tasks
A division was renamed and the old embed broke
- Get the new resolved URL from the Payload block selector (as above), update wherever you embedded the old one.
The embed shows yesterday's data
- Add
?refresh=60to force a refresh interval. Or hard-reload the page — the league app caches at the CDN for ~30 s.
iframe shows blank on WordPress
- Check the browser console for X-Frame-Options / Content-Security-Policy errors. nooQ sets
X-Frame-Options: ALLOWALLon these routes, but a WordPress security plugin may strip the iframe. Disable strict iframe filtering or whitelist the host.
Gotchas
- The Payload block fetches server-side — there's no iframe in the rendered page even though the data comes from a different service. This is the "fastest, no scrollbar" path.
- WordPress embeds are read-only — visitors see live data but can't interact (e.g. they can't open a specific match report from inside the iframe). For interaction, use a Payload page instead.
- Don't iframe inside an iframe — wrapping the iframe URL inside another iframe (e.g. embedding a club site that already has a Payload block) can break refresh timers.
- External domains — if you've put your Payload site behind a custom domain (e.g.
cms.yourclub.com), the iframe URL is unchanged: alwayshttps://league.nooqgolf.com/.... The league app is shared across all tenants.
Related
Still need help? Open the chat assistant in the corner, or send us a message.
