WP Manifestindependent plugin directory
manifest / media / nx2-steam-embed

Steam Store Embed

A small WordPress plugin that turns a pasted Steam store URL into Steam's official embeddable game widget (cover art, description, price).

by NeutralX2 · github.com/neutralx2/nx2-steam-embed · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/neutralx2/nx2-steam-embed/archive/refs/heads/main.zip

A small WordPress plugin that turns a pasted Steam store URL into Steam's official embeddable game widget (cover art, description, price).

What it does

Paste a link to a game's Steam store page on its own line in a post, e.g.:

https://store.steampowered.com/app/570/Dota_2/

and the plugin replaces it with an iframe showing Steam's widget for that app:

<iframe class="steamstore" src="https://store.steampowered.com/widget/570/" width="100%" height="190" frameborder="0" scrolling="no"></iframe>

It works by registering a custom embed handler with wp_embed_register_handler(), WordPress's built-in mechanism for turning bare URLs into rich content (the same system used for YouTube, Twitter, etc.). The plugin matches any store.steampowered.com/app/{id}/... URL, pulls out the numeric app ID, and builds the widget iframe from it — no API calls or external requests involved.

Usage

Plain URL (recommended)

In the editor, put the Steam store URL on its own line/paragraph:

https://store.steampowered.com/app/570/Dota_2/

This works in both the block editor (as a Paragraph or Embed block) and the classic editor. The widget renders at width="100%", so it fills whatever column it's placed in — post content, a narrower sidebar widget area, etc.

Custom width

To force a specific pixel width instead of the fluid 100% default, wrap the URL in WordPress's built-in [embed] shortcode with a width attribute:

[embed width="400"]https://store.steampowered.com/app/570/Dota_2/[/embed]

Type this directly into a paragraph, or use the block editor's Shortcode block. Only width is configurable — height is fixed at 190 to match the actual height of Steam's widget content; overriding it either clips the widget (too short) or leaves dead space below it (too tall), so it's intentionally not exposed.

If the URL inside [embed]...[/embed] doesn't match a Steam store page, WordPress just falls back to its normal embed/link behavior — there's no error state to worry about.

Notes

  • Only store.steampowered.com/app/{id}/ URLs are matched; other Steam URLs (search, tags, developer pages, etc.) are left alone.
  • The generated markup is filterable via the embed_steamstore filter ($embed, $matches, $attr, $url, $rawattr) if you need to customize it further from a theme or another plugin.
  • Requires no configuration, settings page, or activation steps — installing and activating the plugin is enough.