{"id":321151,"date":"2026-09-25T13:16:48","date_gmt":"2026-09-25T13:16:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/nhr-smart-media-manager\/"},"modified":"2026-09-25T13:16:26","modified_gmt":"2026-09-25T13:16:26","slug":"nhrrob-smart-media-manager","status":"publish","type":"plugin","link":"https:\/\/vec.wordpress.org\/plugins\/nhrrob-smart-media-manager\/","author":18706776,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.1.2","requires":"7.0","requires_php":"7.4","requires_plugins":null,"header_name":"NHR Smart Media Manager","header_author":"Nazmul Hasan Robin","header_description":"AI-powered WordPress media manager with virtual folders, smart search, and one-click alt text generation.","assets_banners_color":"5f5061","last_updated":"2026-09-25 13:16:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"http:\/\/wordpress.org\/plugins\/nhrrob-smart-media-manager\/","header_author_uri":"https:\/\/profiles.wordpress.org\/nhrrob\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":47,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"nhrrob","date":"2026-09-25 13:16:26","revision":3713100}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3713100,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3713100,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3713100,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3713100,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3713100,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Media library \u2014 grid view with folder sidebar","2":"File details panel with AI alt text generation","3":"List view with sortable columns","4":"Upload modal with folder assignment","5":"Settings page \u2014 display preferences and AI connector status"}},"plugin_section":[],"plugin_tags":[2353,17214,17545,233,9034],"plugin_category":[],"plugin_contributors":[199134],"plugin_business_model":[],"class_list":["post-321151","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-alt-text","plugin_tags-folder","plugin_tags-media-library","plugin_tags-media-manager","plugin_contributors-nhrrob","plugin_committers-nhrrob"],"banners":{"banner":"https:\/\/ps.w.org\/nhrrob-smart-media-manager\/assets\/banner-772x250.png?rev=3713100","banner_2x":"https:\/\/ps.w.org\/nhrrob-smart-media-manager\/assets\/banner-1544x500.png?rev=3713100","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/nhrrob-smart-media-manager\/assets\/icon.svg?rev=3713100","icon":"https:\/\/ps.w.org\/nhrrob-smart-media-manager\/assets\/icon.svg?rev=3713100","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>NHR Smart Media Manager adds a powerful Smart Library page to your WordPress admin, giving you a clean, organized, and intelligent media management experience. It works alongside your existing WordPress media library and adds smart features baked in.<\/p>\n\n<p><strong>Key Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Virtual Folder System<\/strong> \u2014 Create nested folders to organize your media. Folders are stored as a custom taxonomy and do not move files on disk.<\/li>\n<li><strong>Modern Grid &amp; List View<\/strong> \u2014 Beautiful grid or sortable list view with thumbnail size control.<\/li>\n<li><strong>File Details Panel<\/strong> \u2014 Slide-in panel with editable title, alt text, caption, and description. See exactly where each file is used.<\/li>\n<li><strong>Bulk Operations<\/strong> \u2014 Select multiple files and move or delete them at once.<\/li>\n<li><strong>Smart Search &amp; Filters<\/strong> \u2014 Search by filename, alt text, caption. Filter by file type. Shareable URL state.<\/li>\n<li><strong>AI Alt Text &amp; Caption Generation<\/strong> \u2014 Generate screen-reader-friendly alt text and captions for images with one click, using the WordPress AI connector you configure at Settings \u2192 Connectors.<\/li>\n<li><strong>Upload Enhancements<\/strong> \u2014 Assign files to folders on upload, drag-and-drop from desktop, per-file progress bars.<\/li>\n<li><strong>Keyboard Shortcuts<\/strong> \u2014 Full keyboard navigation (Escape, Delete, Ctrl+A, Shift+click range select, Arrow keys).<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin does <strong>not<\/strong> connect to any external service directly.<\/p>\n\n<p>AI features (alt text and caption generation) are optional. When you trigger them, this plugin reads the image file from your server and passes it to the <strong>WordPress core AI Client<\/strong> (<code>wp_ai_client_prompt()<\/code>). The AI Client then transmits the image data to whichever external AI provider you have installed and configured at <strong>Settings \u2192 Connectors<\/strong> in your WordPress admin (for example, the official Anthropic or OpenAI connector plugins).<\/p>\n\n<p><strong>What data is sent:<\/strong> the image file and a short text prompt describing the task (e.g. \"write alt text for this image\").<\/p>\n\n<p><strong>When data is sent:<\/strong> only when you explicitly click \"Generate Alt Text\" or \"Generate Caption\" on an individual file. No data is sent automatically.<\/p>\n\n<p><strong>Where data goes:<\/strong> to the external AI service you configure. This plugin has no control over, and takes no responsibility for, that service's data handling. Please refer to the connector plugin's documentation for its privacy policy and terms of service.<\/p>\n\n<p>No image data is stored by NHR Smart Media Manager beyond what is already in your WordPress media library.<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>Full source code, including JavaScript source files and build tools, is available at:\nhttps:\/\/github.com\/nhrrob\/nhrrob-smart-media-manager<\/p>\n\n<p>To rebuild the JavaScript assets: <code>npm install &amp;&amp; npm run build<\/code><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>nhrrob-smart-media-manager<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to <strong>Media \u2192 Smart Library<\/strong> to access the new media manager.<\/li>\n<li>Optionally, go to <strong>Settings \u2192 NHR Smart Media<\/strong> to configure display defaults and view AI connector status.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20add%20a%20new%20page%20or%20change%20the%20existing%20media%20library%3F\"><h3>Does this add a new page or change the existing media library?<\/h3><\/dt>\n<dd><p>The plugin adds a new \"Smart Library\" submenu item under the Media menu. Your existing WordPress media library and the native media modal remain completely unchanged.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20ai%20provider%20to%20use%20this%20plugin%3F\"><h3>Do I need an AI provider to use this plugin?<\/h3><\/dt>\n<dd><p>No. All features (folders, grid view, bulk operations, search) work without any AI provider. AI features (alt text and caption generation) require a compatible AI connector plugin installed and configured at Settings \u2192 Connectors.<\/p><\/dd>\n<dt id=\"where%20are%20my%20folders%20stored%3F\"><h3>Where are my folders stored?<\/h3><\/dt>\n<dd><p>Folders are stored as WordPress taxonomy terms (custom taxonomy <code>nhrsmm_media_folder<\/code>). Files are not physically moved on disk \u2014 it is a virtual organization layer.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20popular%20plugins%3F\"><h3>Does this work with popular plugins?<\/h3><\/dt>\n<dd><p>Yes. The plugin only modifies the admin media library page. The native WordPress media modal used by page builders and the block editor is left untouched.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Security: All plugin routes now require Editor+ (manage_categories). Folders are shared taxonomy terms \u2014 restricting to upload_files allowed any uploader to modify the global folder structure.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Security: Added per-attachment permission checks on AI alt text, AI caption, and media usage REST API endpoints.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Minor bug fixes and improvements.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"AI-powered WordPress media manager with folders, smart search, and one-click alt text generation.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/321151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=321151"}],"author":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nhrrob"}],"wp:attachment":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=321151"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=321151"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=321151"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=321151"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=321151"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=321151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}