{"id":366877,"date":"2026-09-14T13:57:50","date_gmt":"2026-09-14T13:57:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/icon-library\/"},"modified":"2026-10-20T10:59:44","modified_gmt":"2026-10-20T10:59:44","slug":"aculect-icon-library","status":"publish","type":"plugin","link":"https:\/\/tzm.wordpress.org\/plugins\/aculect-icon-library\/","author":11669180,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.1.3","requires":"7.1","requires_php":"7.4","requires_plugins":null,"header_name":"Aculect Icon Library","header_author":"Mehul Gohil","header_description":"Easily add support for popular icon libraries and custom SVG icons to the native WordPress Icon block","assets_banners_color":"cdced0","last_updated":"2026-10-20 10:59:44","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/mehul0810\/aculect-icon-library","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":10,"downloads":371,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"mehul0810","date":"2026-09-14 13:57:17","revision":3695335},"1.0.1":{"tag":"1.0.1","author":"mehul0810","date":"2026-09-17 15:01:09","revision":3700482},"1.1.0":{"tag":"1.1.0","author":"mehul0810","date":"2026-09-25 06:55:43","revision":3712532},"1.2.0":{"tag":"1.2.0","author":"mehul0810","date":"2026-10-20 10:59:44","revision":3756509}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3695335,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3695335,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3695335,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3695335,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3695335,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3756511,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"preferredVersions\":{\"php\":\"8.3\",\"wp\":\"7.1\"},\"landingPage\":\"\\\/wp-admin\\\/themes.php?page=icon-library\",\"steps\":[{\"step\":\"login\",\"username\":\"admin\"},{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"aculect-icon-library\"}},{\"step\":\"runPHP\",\"code\":\"<?php require_once '\\\/wordpress\\\/wp-load.php'; update_option( 'icon_library_enabled_collections', array( 'heroicons' ), false ); update_option( 'icon_library_enabled_variants', array( 'heroicons' => array( 'solid' ) ), false ); $post_content = '<!-- wp:paragraph -->' . PHP_EOL . '<p>A native WordPress Icon block using an enabled Heroicons icon.<\\\/p>' . PHP_EOL . '<!-- \\\/wp:paragraph -->' . PHP_EOL . PHP_EOL . '<!-- wp:icon {\\\\\\\"icon\\\\\\\":\\\\\\\"heroicons-solid\\\/academic-cap-solid\\\\\\\"} \\\/-->'; $post_id = wp_insert_post( array( 'post_title' => 'Aculect Icon Library demo', 'post_status' => 'publish', 'post_type' => 'page', 'post_content' => $post_content ), true ); if ( is_wp_error( $post_id ) || ! $post_id ) { throw new RuntimeException( is_wp_error( $post_id ) ? $post_id->get_error_message() : 'The Aculect Icon Library demo page could not be created.' ); } ?>\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.1.0","1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3695335,"resolution":"1","location":"assets","locale":"","width":2112,"height":745},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3695335,"resolution":"2","location":"assets","locale":"","width":2058,"height":764},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3695335,"resolution":"3","location":"assets","locale":"","width":1491,"height":1055}},"screenshots":{"1":"View bundled icon libraries and their active variants from Appearance &gt; Icons.","2":"Search and filter bundled icons by library, variant, and category.","3":"Upload custom SVG icons, search uploaded icons, rename labels, and delete icons."}},"plugin_section":[],"plugin_tags":[3688,264365,178481,498,150599],"plugin_category":[50],"plugin_contributors":[133258,147734],"plugin_business_model":[],"class_list":["post-366877","plugin","type-plugin","status-publish","hentry","plugin_tags-custom-icons","plugin_tags-icon-library","plugin_tags-icon-block","plugin_tags-icons","plugin_tags-svg-icons","plugin_category-media","plugin_contributors-alkesh7","plugin_contributors-mehul0810","plugin_committers-mehul0810"],"banners":{"banner":"https:\/\/ps.w.org\/aculect-icon-library\/assets\/banner-772x250.png?rev=3695335","banner_2x":"https:\/\/ps.w.org\/aculect-icon-library\/assets\/banner-1544x500.png?rev=3695335","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/aculect-icon-library\/assets\/icon.svg?rev=3695335","icon":"https:\/\/ps.w.org\/aculect-icon-library\/assets\/icon.svg?rev=3695335","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/aculect-icon-library\/assets\/screenshot-1.png?rev=3695335","caption":"View bundled icon libraries and their active variants from Appearance &gt; Icons."},{"src":"https:\/\/ps.w.org\/aculect-icon-library\/assets\/screenshot-2.png?rev=3695335","caption":"Search and filter bundled icons by library, variant, and category."},{"src":"https:\/\/ps.w.org\/aculect-icon-library\/assets\/screenshot-3.png?rev=3695335","caption":"Upload custom SVG icons, search uploaded icons, rename labels, and delete icons."}],"raw_content":"<!--section=description-->\n<p>Aculect Icon Library is a WordPress plugin that adds Heroicons, Bootstrap Icons,\nFont Awesome Free, Tabler Icons, Radix Icons, Rune Icons, Google Material Icons,\na compatible Iconoir Solid subset, Phosphor Icons, Ionicons, and custom SVG icons to the native WordPress\nIcon block. Choose bundled libraries from Appearance &gt; Icons &gt; Install Library, enable the styles you need in Library,\nand select icons in the WordPress block editor.<\/p>\n\n<p>Choose bundled libraries from Appearance &gt; Icons &gt; Install Library and enable them in Library. The 1.2.0 package includes all ten supported icon families and their\nlicense and exclusion notices. Existing sites retain their bundled libraries,\npreferences and saved icon names through an ordinary plugin update. No bridge\npackage or separate preservation stage is required. Remote discovery, preview,\nand downloaded-library installation are not part of this release.<\/p>\n\n<h4>Bundled icon libraries<\/h4>\n\n<ul>\n<li>Heroicons: Outline and Solid.<\/li>\n<li>Bootstrap Icons: Default and Filled.<\/li>\n<li>Font Awesome Free: Solid, Regular, and Brands.<\/li>\n<li>Tabler Icons: Filled.<\/li>\n<li>Radix Icons: Default.<\/li>\n<li>Google Material Icons: Filled 24px, Core-compatible subset (1,038 icons).<\/li>\n<li>Iconoir: Solid, compatible filled-path subset (210 icons).<\/li>\n<li>Phosphor Icons: Regular and Fill (2,487 icons).<\/li>\n<li>Ionicons: compatible Filled, Sharp, Outline, and Brands subset (679 icons).<\/li>\n<li>Rune Icons: Pixelated (215 icons).<\/li>\n<\/ul>\n\n<p>Preview bundled icons by library, variant, and category before choosing a library. Search and filter selected bundled icons where\navailable, and load more results as you browse. Enable or disable individual\nvariants as needed.<\/p>\n\n<h4>Upload and manage custom SVG icons<\/h4>\n\n<p>Upload custom SVG files through the Upload tab, give them recognizable labels,\nand use them alongside library icons in the native Icon block. Rename labels\nor delete custom icons from the uploaded icons list.<\/p>\n\n<p>SVG uploads are validated before storage and are limited to supported SVG\nelements and attributes. Custom icons are managed by the plugin and do not\nenable SVG uploads in the WordPress Media Library.<\/p>\n\n<h4>Use icons in the WordPress block editor<\/h4>\n\n<p>Enabled icons appear in the existing Icon block picker, where you can use the\nblock's own sizing and styling controls. Aculect Icon Library extends this\nworkflow without adding a separate icon block or using icon fonts.<\/p>\n\n<p>Included libraries and uploaded icons are stored locally. No external service\nconnection is required to browse or use them.<\/p>\n\n<h4>Icon automation with the WordPress Abilities API<\/h4>\n\n<p>The WordPress Abilities API integration lets compatible AI agents and tools\nsearch enabled icons and insert, replace, or remove Icon blocks. Actions respect\nWordPress permissions, including permission to edit the target post.<\/p>\n\n<p>Requires WordPress 7.1 or later and PHP 7.4 or later.<\/p>\n\n<h3>Source code<\/h3>\n\n<p>Source and build tools: https:\/\/github.com\/mehul0810\/aculect-icon-library<\/p>\n\n<p>The editable DataViews source is assets\/src\/custom-icons-dataviews.js.\nTo rebuild assets\/build\/custom-icons-dataviews.js, run npm ci followed by\nnpm run build from the repository root. Dependencies and their exact versions\nare recorded in package.json and package-lock.json.<\/p>\n\n<h3>Third-party licenses<\/h3>\n\n<p>Bundled libraries remain under their upstream terms:<\/p>\n\n<ul>\n<li>Heroicons: https:\/\/github.com\/tailwindlabs\/heroicons (MIT license).<\/li>\n<li>Bootstrap Icons: https:\/\/github.com\/twbs\/icons (MIT license).<\/li>\n<li>Font Awesome Free: https:\/\/fontawesome.com\/license\/free (Font Awesome Free license).<\/li>\n<li>Tabler Icons: https:\/\/github.com\/tabler\/tabler-icons (MIT license).<\/li>\n<li>Radix Icons: https:\/\/github.com\/radix-ui\/icons (MIT license).<\/li>\n<li>Rune Icons, pixelated variant only: https:\/\/github.com\/Nexvyn\/runeicons (Apache-2.0; bundled license and SVG modification notices).<\/li>\n<li>Google Material Icons, compatible filled 24px subset: https:\/\/github.com\/google\/material-design-icons (Apache-2.0; bundled license and modification notices).<\/li>\n<li>Iconoir, compatible Solid subset: https:\/\/github.com\/iconoir-icons\/iconoir (MIT license; bundled license and exclusions).<\/li>\n<li>Phosphor Icons, Regular and Fill: https:\/\/github.com\/phosphor-icons\/core (MIT license; bundled license and exclusions).<\/li>\n<li>Ionicons, compatible style subset: https:\/\/github.com\/ionic-team\/ionicons (MIT license; bundled license and exclusions; brand marks remain their owners' trademarks).<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to the <code>wp-content\/plugins\/aculect-icon-library<\/code> directory.<\/li>\n<li>Activate Aculect Icon Library in WordPress.<\/li>\n<li>Open Appearance &gt; Icons &gt; Install Library and choose a bundled library. Then enable it in Library.<\/li>\n<li>Open a post or page in the block editor, insert the Icon block, and select\nan icon from the enabled library. Adjust its sizing and styling, then save.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20icon%20libraries%20are%20included%3F\"><h3>Which icon libraries are included?<\/h3><\/dt>\n<dd><p>Heroicons includes Outline and Solid. Bootstrap Icons includes Default and\nFilled. Font Awesome Free includes Solid, Regular, and Brands; Pro-only styles\nare not included. Tabler Icons includes 1,012 Filled icons after excluding its\nBrand category and selected trademark or character references. Radix Icons\nincludes its non-logo 15-pixel icon collection. Google Material Icons includes\na Core-compatible Filled 24px subset. Iconoir includes 210 compatible Solid\nicons; Regular and mixed-stroke icons are deferred. Rune Icons includes 215\npixelated icons. Phosphor Icons includes Regular and Fill. Ionicons includes\ncompatible Filled, Sharp, Outline, and Brands icons; unsupported assets are\nrecorded in the bundled exclusion report. Libraries are disabled by default.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20an%20icon%20to%20a%20wordpress%20post%20or%20page%3F\"><h3>How do I add an icon to a WordPress post or page?<\/h3><\/dt>\n<dd><p>Enable a bundled library or variant from Appearance &gt; Icons, then insert the\nnative Icon block in the block editor. Choose an icon from an enabled library\nand use the block's sizing and styling controls.<\/p><\/dd>\n<dt id=\"does%20this%20add%20a%20custom%20icon%20block%3F\"><h3>Does this add a custom icon block?<\/h3><\/dt>\n<dd><p>No. Aculect Icon Library integrates with the native WordPress <code>core\/icon<\/code> block.<\/p><\/dd>\n<dt id=\"can%20administrators%20add%20custom%20svg%20icons%3F\"><h3>Can administrators add custom SVG icons?<\/h3><\/dt>\n<dd><p>Yes. Administrators can add SVG files through Appearance &gt; Icons &gt; Upload.\nSVG files must be no larger than 64 KB and use supported SVG geometry.\nUnsupported features can cause an upload to be rejected; arbitrary SVG files\nare not supported. Use flattened paths with explicit fills for complex exports.<\/p><\/dd>\n<dt id=\"does%20this%20enable%20svg%20uploads%20in%20the%20media%20library%3F\"><h3>Does this enable SVG uploads in the Media Library?<\/h3><\/dt>\n<dd><p>No. Custom SVG icons are validated and stored separately by Aculect Icon Library.\nThe plugin does not enable general SVG uploads in the WordPress Media Library.<\/p><\/dd>\n<dt id=\"are%20icons%20hosted%20locally%3F\"><h3>Are icons hosted locally?<\/h3><\/dt>\n<dd><p>Yes. Included library SVGs and uploaded custom icons are stored on your site.\nNo external service connection is required to browse or use them.<\/p><\/dd>\n<dt id=\"can%20i%20enable%20or%20disable%20individual%20icon%20styles%3F\"><h3>Can I enable or disable individual icon styles?<\/h3><\/dt>\n<dd><p>Yes. Open a library's detail screen to enable or disable its variants, such as\nSolid or Outline. Disabled variants stop appearing for new selections.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20disable%20a%20bundled%20library%20or%20variant%3F\"><h3>What happens when I disable a bundled library or variant?<\/h3><\/dt>\n<dd><p>Its icons stop appearing for new selections. Existing saved Icon blocks can\nstill resolve those icons while Aculect Icon Library remains active and its\nbundled SVG files remain available. This also applies to disabled variants.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20delete%20a%20custom%20icon%3F\"><h3>What happens when I delete a custom icon?<\/h3><\/dt>\n<dd><p>Deleting a custom icon permanently removes its stored SVG and metadata.\nExisting blocks that reference it can no longer resolve that icon. Replace\nthose icons in your content before deleting them. Renaming a display label\ndoes not change the icon's registered name.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20deactivate%20or%20uninstall%20the%20plugin%3F\"><h3>What happens when I deactivate or uninstall the plugin?<\/h3><\/dt>\n<dd><p>The Icon block stores the registered icon name rather than an SVG copy. Existing\npost content remains, but plugin-provided icons cannot resolve while the plugin\nis inactive. Uninstalling also removes plugin settings, custom icon files, and\ncustom icon metadata. Back up custom icons before uninstalling.<\/p><\/dd>\n<dt id=\"can%20ai%20agents%20manage%20icons%3F\"><h3>Can AI agents manage icons?<\/h3><\/dt>\n<dd><p>Compatible agents and tools can use the WordPress Abilities API to search enabled\nicons and list, insert, replace, or remove native Icon blocks. The plugin does\nnot include an AI assistant. Read actions require editor-style access; post\nactions require permission to edit the target post. Ability inputs do not accept\nraw SVG, filesystem paths, arbitrary block markup, or post content.<\/p><\/dd>\n<dt id=\"what%20are%20the%20requirements%3F\"><h3>What are the requirements?<\/h3><\/dt>\n<dd><p>Aculect Icon Library requires WordPress 7.1 or later and PHP 7.4 or later.\nIt integrates with the native WordPress Icon block, not a page-builder-specific\nicon widget.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added support for <a href=\"https:\/\/phosphoricons.com\/\">Phosphor Icons<\/a> (Regular and Fill).<\/li>\n<li>Added support for <a href=\"https:\/\/ionic.io\/ionicons\">Ionicons<\/a> (compatible Filled, Sharp, Outline, and Brands subset).<\/li>\n<li>Added support for <a href=\"https:\/\/iconoir.com\/\">Iconoir<\/a> (compatible Solid subset).<\/li>\n<li>Added support for <a href=\"https:\/\/github.com\/Nexvyn\/runeicons\">Rune Icons<\/a> (Pixelated).<\/li>\n<li>Added support for <a href=\"https:\/\/github.com\/google\/material-design-icons\">Google Material Icons<\/a> (compatible Filled 24px subset).<\/li>\n<li>Add Install Library to choose from ten bundled icon families, then enable their styles in Library. Removing a library preserves saved icons.<\/li>\n<li>Reduce icon picker loading and load custom icon previews one page at a time.<\/li>\n<li>Protect library settings and custom icons during concurrent changes, and prevent uploads from replacing archived artwork.<\/li>\n<li>Prevent automated post edits from overwriting newer changes.<\/li>\n<li>Improve keyboard focus during icon picker pagination and upload retries, and close upload dialogs when switching tabs.<\/li>\n<li>Show clearer upload and listing errors and retain existing results when a refresh fails.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added support for <a href=\"https:\/\/tabler.io\/icons\">Tabler Icons<\/a>.<\/li>\n<li>Added support for <a href=\"https:\/\/www.radix-ui.com\/icons\">Radix Icons<\/a>.<\/li>\n<li>Preserve upstream categories, searchable metadata, licenses, and source revisions for both libraries.<\/li>\n<li>Add deterministic importers and exclusion reports without weakening the WordPress Icon API SVG contract.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Add a WordPress.org Playground preview Blueprint that installs the latest stable package and creates an Icon block demo.<\/li>\n<li>Validate the preview package source and fail clearly when the demo page cannot be created.<\/li>\n<li>Extend PHPCS coverage so <code>shell_exec()<\/code> usage must remain explicitly reviewed. Props Alkesh Miyani (<code>@alkesh7<\/code>).<\/li>\n<li>Document the reasoning behind security, filesystem, permissions, and concurrency safeguards. Props Alkesh Miyani (<code>@alkesh7<\/code>).<\/li>\n<li>Strengthen release-package validation and release documentation for the 1.0.1 candidate.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Integrate collections with the WordPress 7.1 public Icon API.<\/li>\n<li>Bundle 648 Heroicons Outline and Solid icons, 2,073 Bootstrap Icons, and 2,883 Font Awesome Free style entries with the upstream 68-category taxonomy plus a Brands grouping, separately categorized variants, and deterministic manifests. Outline is opt-in while its WordPress 7.1 Core sanitization workaround is validated.<\/li>\n<li>Expose available styles separately in the native Icon picker collection filter.<\/li>\n<li>Add per-variant enable and disable controls with capability-checked REST routes.<\/li>\n<li>Add Appearance &gt; Icons library management and searchable previews.<\/li>\n<li>Add strict local custom SVG icon management.<\/li>\n<li>Preserve saved icons when bundled libraries are disabled.<\/li>\n<li>Add reproducible validation and release packaging.<\/li>\n<li>Add permissioned WordPress Abilities API actions for icon discovery and core\/icon block editing.<\/li>\n<\/ul>","raw_excerpt":"Easily add support for popular icon libraries and custom SVG icons to the native WordPress Icon block","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tzm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/366877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tzm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tzm.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tzm.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=366877"}],"author":[{"embeddable":true,"href":"https:\/\/tzm.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mehul0810"}],"wp:attachment":[{"href":"https:\/\/tzm.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=366877"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tzm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=366877"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tzm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=366877"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tzm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=366877"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tzm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=366877"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tzm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=366877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}