nooQGolf logo

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:

  1. Payload block — for pages on your nooQ-hosted Payload site. Fastest, theme-aware, no iframe.
  2. Iframe — for external sites (WordPress, Wix, Squarespace) or anywhere you can't add a Payload block.
  3. 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

  1. Edit a Page > Add Block > Nooq Golf Competition.
  2. 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.
  3. 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).
  4. 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:

  1. Add a Custom HTML block (or the Classic editor "Text" mode).
  2. Paste the snippet above with your URL.
  3. 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=60 to 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: ALLOWALL on 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: always https://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.