Symbol picker in the Gutenberg editor with a live preview of all icons from the sprite file.
The SVG Forge Icon Manager Block loads a central SVG sprite file (by default the bundled sprite.svg), shows all contained <symbol> elements in a convenient picker and inserts the selected icon as <svg><use href="/wp-content/plugins/sf-icon-manager/sprite.svg#symbol-id"> into your content.
The SVG sprite is a static SVG fragment file loaded by the browser via <use> — no JS on the frontend. Since you own the sprite file, every icon stays small, cacheable and fully under your control — exactly the way a hand-built icon set should be maintained.
This plugin is primarily aimed at advanced theme and plugin developers. It does not give you a code-free icon manager: every icon must first exist as a <symbol> in a sprite file that you own, build and version.
Since WordPress 7.1, core ships its own icon system (wp_register_icon_collection(), wp_register_icon(), wp_get_icon()): icons then automatically appear in the native Icon block’s picker and in the REST API, and can be rendered directly in PHP. If you only need a few icons and can register them in code, use core instead — this plugin is then unnecessary.
The fragment approach has advantages when you run a real sprite pipeline:
<use>: stroke-based icons, gradients, currentColor, inline styles and custom viewBox values survive. WordPress 7.1’s sanitizer only allows <svg>, <path> and <polygon> (no stroke, no inline styles) and therefore breaks many stroke-based icon sets.rel handling and aria-labels — per icon instance, without touching a stylesheet.Limitations you should know about:
wp_get_icon() helper in theme PHP — that is what the native 7.1 approach is for.javascript: links as a safety net.sfim_sprite_url filter (e.g. get_theme_file_uri()) – the filter has priority over everything.directory--filename) are grouped and selectable via a filter in the dropdown.get_block_wrapper_attributes().The SVG sprite file is resolved in this order (first existing source wins):
sfim_sprite_url – the canonical override (has priority).sprite.svg in the plugin directory.Override with a filter (recommended, versionable with the theme) in the theme’s functions.php:
add_filter( 'sfim_sprite_url', fn () => get_theme_file_uri( 'assets/ico.svg' ) );
or point it at a CDN:
add_filter( 'sfim_sprite_url', fn () => 'https://cdn.example.com/icons/ico.svg' );
SVG Forge Icon Manager is a developer-focused Gutenberg block that arranges a curated set of SVG icons as one central sprite and reuses them everywhere in your content. It works with any symbol sprite produced by modern build tools, is fully translated, and gives you precise control over colours, size, links and accessibility on every single block instance. The plugin prefers simplicity and performance: no tracking, no third-party requests, no page-weight overhead, and no vendor lock-in to a particular icon pack or service.
Development is done on GitHub.