{"id":253957,"date":"2025-10-07T00:54:29","date_gmt":"2025-10-07T00:54:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/exportimport-media\/"},"modified":"2026-06-19T01:28:38","modified_gmt":"2026-06-19T01:28:38","slug":"calliope-media-import-export","status":"publish","type":"plugin","link":"https:\/\/da.wordpress.org\/plugins\/calliope-media-import-export\/","author":21100331,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.7.28","stable_tag":"1.7.28","tested":"7.0","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Export\/Import Media","header_author":"CalliopeWP","header_description":"Exports and imports images with metadata using CSV. Includes real-time batch processing and prevents duplicates.","assets_banners_color":"edf2fd","last_updated":"2026-06-19 01:28:38","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/pluginswordpress.calliope.com.ar\/","rating":3.7,"author_block_rating":0,"active_installs":1000,"downloads":9183,"num_ratings":3,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"mairaforesto","date":"2025-10-07 01:02:47"},"1.0.3":{"tag":"1.0.3","author":"mairaforesto","date":"2026-01-03 01:00:06"},"1.2.1":{"tag":"1.2.1","author":"mairaforesto","date":"2025-10-08 19:32:32"},"1.2.2":{"tag":"1.2.2","author":"mairaforesto","date":"2025-10-08 19:38:40"},"1.2.3":{"tag":"1.2.3","author":"mairaforesto","date":"2025-12-04 23:53:22"},"1.6.15":{"tag":"1.6.15","author":"mairaforesto","date":"2026-04-22 04:00:54"},"1.6.4":{"tag":"1.6.4","author":"mairaforesto","date":"2026-04-07 21:09:24"},"1.7":{"tag":"1.7","author":"mairaforesto","date":"2026-04-24 18:45:58"},"1.7.1":{"tag":"1.7.1","author":"mairaforesto","date":"2026-04-27 14:16:44"},"1.7.10":{"tag":"1.7.10","author":"mairaforesto","date":"2026-05-21 01:40:57"},"1.7.20":{"tag":"1.7.20","author":"mairaforesto","date":"2026-05-29 03:20:19"},"1.7.26":{"tag":"1.7.26","author":"mairaforesto","date":"2026-05-29 04:46:19"},"1.7.27":{"tag":"1.7.27","author":"mairaforesto","date":"2026-06-18 23:12:45"},"1.7.28":{"tag":"1.7.28","author":"mairaforesto","date":"2026-06-19 01:28:38"},"1.7.9":{"tag":"1.7.9","author":"mairaforesto","date":"2026-04-27 18:19:19"}},"upgrade_notice":[],"ratings":{"1":1,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3552934,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3552934,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3552934,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3552934,"resolution":"772x250","location":"assets","locale":"","width":773,"height":251}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.0.3","1.2.1","1.2.2","1.2.3","1.6.15","1.6.4","1.7","1.7.1","1.7.10","1.7.20","1.7.26","1.7.27","1.7.28","1.7.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3577957,"resolution":"1","location":"assets","locale":"","width":1366,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3577957,"resolution":"2","location":"assets","locale":"","width":1366,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3577957,"resolution":"3","location":"assets","locale":"","width":1366,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3577957,"resolution":"4","location":"assets","locale":"","width":1366,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3577957,"resolution":"5","location":"assets","locale":"","width":1366,"height":900}},"screenshots":{"1":"Export media library to CSV with filters for date, media type, and attachment context.","2":"Upload and validate a CSV before importing media into WordPress.","3":"Preview CSV rows, metadata, and duplicate status before starting the import.","4":"Import media in batches with progress feedback and a downloadable log.","5":"Review imported media with title, alt text, caption, and description preserved."}},"plugin_section":[],"plugin_tags":[13410,21157,254550,240781,233],"plugin_category":[50,59],"plugin_contributors":[248854],"plugin_business_model":[],"class_list":["post-253957","plugin","type-plugin","status-publish","hentry","plugin_tags-csv-export","plugin_tags-csv-import","plugin_tags-media-export","plugin_tags-media-import","plugin_tags-media-library","plugin_category-media","plugin_category-utilities-and-tools","plugin_contributors-mairaforesto","plugin_committers-mairaforesto"],"banners":{"banner":"https:\/\/ps.w.org\/calliope-media-import-export\/assets\/banner-772x250.png?rev=3552934","banner_2x":"https:\/\/ps.w.org\/calliope-media-import-export\/assets\/banner-1544x500.png?rev=3552934","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/calliope-media-import-export\/assets\/icon-128x128.png?rev=3552934","icon_2x":"https:\/\/ps.w.org\/calliope-media-import-export\/assets\/icon-256x256.png?rev=3552934","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/calliope-media-import-export\/assets\/screenshot-1.png?rev=3577957","caption":"Export media library to CSV with filters for date, media type, and attachment context."},{"src":"https:\/\/ps.w.org\/calliope-media-import-export\/assets\/screenshot-2.png?rev=3577957","caption":"Upload and validate a CSV before importing media into WordPress."},{"src":"https:\/\/ps.w.org\/calliope-media-import-export\/assets\/screenshot-3.png?rev=3577957","caption":"Preview CSV rows, metadata, and duplicate status before starting the import."},{"src":"https:\/\/ps.w.org\/calliope-media-import-export\/assets\/screenshot-4.png?rev=3577957","caption":"Import media in batches with progress feedback and a downloadable log."},{"src":"https:\/\/ps.w.org\/calliope-media-import-export\/assets\/screenshot-5.png?rev=3577957","caption":"Review imported media with title, alt text, caption, and description preserved."}],"raw_content":"<!--section=description-->\n<p>Need to move or rebuild a media library without manually re-uploading every file? <strong>Export\/Import Media<\/strong> helps you import WordPress media from CSV, export media data to CSV, and keep core attachment metadata organized during the process.<\/p>\n\n<p>The free plugin focuses on the essential CSV workflow: export your current media library, prepare or upload a CSV, validate the file, preview rows before import, and process media in batches from the WordPress admin. Supported CSV columns include the media URL, relative path, title, alt text, caption, and description.<\/p>\n\n<p>During standard free imports, detected duplicates are skipped to help prevent duplicate attachments in the media library. Metadata is preserved for newly imported media rows. Updating existing attachments, controlled matching rules, rollback restore points, saved workflows, background processing, image conversion options, and replace-file workflows are handled by the separate <strong>Export\/Import Media Pro<\/strong> add-on.<\/p>\n\n<p><strong>Watch the demo:<\/strong><\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=QfXuZOJLgFc<\/p>\n\n<p><strong>Why use this plugin?<\/strong>\n* <strong>CSV-first workflow:<\/strong> Export, validate, preview, and import media library data using a readable CSV file.\n* <strong>Batch processing:<\/strong> Import media rows in smaller AJAX batches to reduce timeout risk.\n* <strong>Metadata support:<\/strong> Preserve title, alt text, caption, and description for imported attachments.\n* <strong>Duplicate prevention:<\/strong> Skip existing matches in the standard free workflow.\n* <strong>Local file support:<\/strong> Register files that already exist inside your WordPress uploads directory.\n* <strong>Developer friendly:<\/strong> Use hooks and filters to extend CSV columns, validation, admin UI, and import\/export behavior.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li><strong>CSV export:<\/strong> Export media library data to CSV with filters for date range, media type, and attachment context.<\/li>\n<li><strong>CSV validation and preview:<\/strong> Upload a CSV, validate required columns, and preview rows before import.<\/li>\n<li><strong>Batch import:<\/strong> Process media rows in batches from the WordPress admin.<\/li>\n<li><strong>Metadata support:<\/strong> Import and export title, alt text, caption, and description columns.<\/li>\n<li><strong>Duplicate prevention:<\/strong> Detect existing matches and skip duplicate rows in the standard free workflow.<\/li>\n<li><strong>Local Import Mode:<\/strong> Import files that already exist in <code>\/uploads\/<\/code> without downloading them again.<\/li>\n<li><strong>Honor Relative Path:<\/strong> Reuse or preserve relative upload paths from the CSV when available.<\/li>\n<li><strong>Skip Thumbnail Generation:<\/strong> Skip intermediate image sizes during import when speed matters more than thumbnails.<\/li>\n<li><strong>Downloadable import log:<\/strong> Download a <code>.txt<\/code> log after an import finishes.<\/li>\n<li><strong>Hooks and filters:<\/strong> Extend CSV columns, validation, admin UI, and import\/export behavior.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin 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>Export\/Import Media<\/strong> in the WordPress admin menu to start using the tool.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20move%20the%20actual%20media%20files%3F\"><h3>Does this plugin move the actual media files?<\/h3><\/dt>\n<dd><p>Yes, when you run a remote import. The plugin downloads the file from the URL in the CSV, adds it to the WordPress media library, and creates the attachment record. With Local Import Mode, it can also register files that already exist inside your uploads directory.<\/p><\/dd>\n<dt id=\"can%20i%20import%20wordpress%20media%20from%20csv%3F\"><h3>Can I import WordPress media from CSV?<\/h3><\/dt>\n<dd><p>Yes. Prepare a CSV with an absolute URL or relative path for each file, upload it in the plugin screen, validate it, preview the rows, and start the batch import.<\/p><\/dd>\n<dt id=\"what%20metadata%20can%20i%20import%3F\"><h3>What metadata can I import?<\/h3><\/dt>\n<dd><p>The free plugin supports common media metadata columns including title, alt text, caption, and description. It also reads media location columns such as absolute URL and relative path.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20file%20already%20exists%3F\"><h3>What happens if a file already exists?<\/h3><\/dt>\n<dd><p>The free plugin checks for existing matches using stored source data, relative paths, attachment paths, and file fingerprints. If it finds a duplicate, it skips that row instead of creating another attachment.<\/p><\/dd>\n<dt id=\"does%20the%20free%20plugin%20update%20existing%20media%3F\"><h3>Does the free plugin update existing media?<\/h3><\/dt>\n<dd><p>No. In the free plugin, detected duplicates are skipped in the standard workflow. Updating metadata on existing attachments, selecting match rules, and replacing files are Pro workflows.<\/p><\/dd>\n<dt id=\"how%20does%20the%20%22skip%20thumbnail%20generation%22%20work%3F\"><h3>How does the \"Skip Thumbnail Generation\" work?<\/h3><\/dt>\n<dd><p>By checking this option, WordPress imports only the original image and skips creating intermediate image sizes during the import process. This makes large image imports faster. You can regenerate thumbnails later using a dedicated plugin.<\/p><\/dd>\n<dt id=\"can%20i%20undo%20an%20import%3F\"><h3>Can I undo an import?<\/h3><\/dt>\n<dd><p>The free plugin provides preview and downloadable logs, but it does not include rollback. Rollback restore points before import are available in the Pro add-on.<\/p><\/dd>\n<dt id=\"what%20does%20the%20pro%20add-on%20add%3F\"><h3>What does the Pro add-on add?<\/h3><\/dt>\n<dd><p>Export\/Import Media Pro adds rollback restore points before imports, saved workflows, background processing, controlled matching, selective metadata updates, replace-file workflows, history, and image conversion options where the server and source file handling support them.<\/p><\/dd>\n<dt id=\"can%20i%20filter%20which%20media%20items%20to%20export%3F\"><h3>Can I filter which media items to export?<\/h3><\/dt>\n<dd><p>Yes. You can filter exports by date range, media type, and attachment context, including unattached files and media attached to posts or pages.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%20product%20images%3F\"><h3>Does it work with WooCommerce product images?<\/h3><\/dt>\n<dd><p>Export filters can include product attachment context when WooCommerce is active and product attachments are available. The standard free CSV import creates media attachments; assigning imported images to products is outside the free import workflow.<\/p><\/dd>\n<dt id=\"can%20i%20use%20local%20files%20already%20inside%20uploads%3F\"><h3>Can I use local files already inside uploads?<\/h3><\/dt>\n<dd><p>Yes. Enable Local Import Mode and provide relative paths for files that already exist inside your WordPress uploads directory. Honor Relative Path can preserve or reuse folder paths from the CSV when appropriate.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.7.28<\/h4>\n\n<ul>\n<li>Added the YouTube demo video to the WordPress.org readme so it can be embedded on the plugin page.<\/li>\n<li>Bumped plugin release metadata to 1.7.28.<\/li>\n<\/ul>\n\n<h4>1.7.27<\/h4>\n\n<ul>\n<li>Improved the WordPress.org readme with clearer CSV media import\/export positioning and screenshot captions.<\/li>\n<li>Added a dismissible review popup shown once after 7 days to administrators, while keeping the existing review footer visible.<\/li>\n<li>Improved admin internationalization and refreshed translations.<\/li>\n<li>Changed review stars to a consistent golden color.<\/li>\n<li>Loaded plugin translations from the bundled languages directory more reliably.<\/li>\n<\/ul>\n\n<h4>1.7.19<\/h4>\n\n<ul>\n<li>Import UX: CSV files that contain only headers now validate as an empty preview with a clear warning instead of showing a failed-validation error.<\/li>\n<li>Export UX: export now defaults to All Media and warns when the selected filters would create a header-only CSV.<\/li>\n<li>Translations: refreshed language files for the new empty-CSV and export-filter notices.<\/li>\n<\/ul>\n\n<h4>1.7.18<\/h4>\n\n<ul>\n<li>Import: improved CSV validation for files with legacy line endings and clearer feedback when a CSV has headers but no importable data rows.<\/li>\n<li>Translations: regenerated language files so new Pro teaser and import error strings do not fall back to English.<\/li>\n<\/ul>\n\n<h4>1.7.17<\/h4>\n\n<ul>\n<li>Compatibility: Adds safe import context and lifecycle hooks for Pro rollback restore points and Pro image conversion without changing the free import workflow.<\/li>\n<li>Messaging: Clarifies that rollback restore points and WebP\/AVIF conversion are Pro features.<\/li>\n<\/ul>\n\n<h4>1.7.16<\/h4>\n\n<ul>\n<li>Design: Aligns the Pro details button and Pro badges with the refreshed logo\/banner color palette.<\/li>\n<\/ul>\n\n<h4>1.7.15<\/h4>\n\n<ul>\n<li>Fix: SVG files can now be imported through the plugin when they pass the plugin's SVG safety checks.<\/li>\n<li>Fix: Remote Pro replacement imports now wait until the replacement file is downloaded before running replace_file on an existing match.<\/li>\n<li>Security: SVG imports are validated for unsafe markup before attaching or replacing media files.<\/li>\n<\/ul>\n\n<h4>1.7.14<\/h4>\n\n<ul>\n<li>Fix: Turbo imports now get a larger execution window before the safety time cutoff, so 100-row batches can run as intended when the server allows it.<\/li>\n<li>UX: Import logs now warn when a batch was stopped early by the time limit and continues in the next request.<\/li>\n<\/ul>\n\n<h4>1.7.13<\/h4>\n\n<ul>\n<li>Fix: Keeps PHP upload temporary paths intact during CSV validation so imports work correctly on Windows-based local environments.<\/li>\n<\/ul>\n\n<h4>1.7.12<\/h4>\n\n<ul>\n<li>Design: Refreshes the admin menu icon, banner, calls to action, and review stars with the logo color palette.<\/li>\n<\/ul>\n\n<h4>1.7.11<\/h4>\n\n<ul>\n<li>Fix: Keeps temporary remote downloads available until duplicate handling finishes, so Pro replace-file and force-new workflows can run reliably.<\/li>\n<li>Fix: Replaces existing attachment files more safely by copying the new file before cleaning up the previous file and generated sizes.<\/li>\n<li>Compatibility: Adds a server-side gate so advanced import actions only run when an add-on explicitly enables them.<\/li>\n<li>Performance: Streams CSV exports in batches to reduce memory usage on larger media libraries.<\/li>\n<\/ul>\n\n<h4>1.7.10<\/h4>\n\n<ul>\n<li>Compatibility: Tested with WordPress 7.0.<\/li>\n<li>Improvement: Simplified the admin banner by removing the highlight chips.<\/li>\n<li>Improvement: Added a suggestions mail link to the admin banner.<\/li>\n<li>Improvement: Moved remaining inline admin styles into the plugin stylesheet.<\/li>\n<\/ul>\n\n<h4>1.7.9<\/h4>\n\n<ul>\n<li>Fixed export media type filtering so selecting Videos, Audio, Documents, or Images uses explicit MIME type lists instead of falling back to images.<\/li>\n<li>Export filenames now include the selected media type for easier verification.<\/li>\n<\/ul>\n\n<h4>1.7.6<\/h4>\n\n<ul>\n<li>Fix: Adjusted the footer review star styles so inline SVG stars are not clipped by admin line-height or inherited image rules.<\/li>\n<\/ul>\n\n<h4>1.7.5<\/h4>\n\n<ul>\n<li>Fix: Made large AJAX imports safer on shared hosting by capping oversized batches, using a host-aware soft time limit, and preventing long stale locks after failed requests.<\/li>\n<li>Improvement: Import retries now wait for active batches instead of immediately failing against the import lock, and reduce the runtime batch size after server\/network failures.<\/li>\n<\/ul>\n\n<h4>1.7.2<\/h4>\n\n<ul>\n<li>Fix: The downloadable sample CSV now uses stable canonical column headers and points to a bundled sample image so it can validate and run more reliably on translated admin sites.<\/li>\n<li>Fix: CSV validation now recognizes translated column headers for URL, relative path, title, alt text, caption, and description when users import files created from localized exports.<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>Fix: CSV validation no longer fails because the importer now closes file handles correctly instead of re-entering its own close helper.<\/li>\n<li>Improvement: AJAX validation errors now surface a clearer server response when a host returns a non-JSON error.<\/li>\n<\/ul>\n\n<h4>1.7<\/h4>\n\n<ul>\n<li>Internal: Replaced the global service map with an internal service registry to keep bootstrapped plugin services more controlled and maintainable.<\/li>\n<li>Compatibility: Kept <code>eim_get_service()<\/code> working as the compatibility layer for importer, exporter, admin, and add-on access patterns.<\/li>\n<\/ul>\n\n<h4>1.6.15<\/h4>\n\n<ul>\n<li>Fixed broken Spanish MO encoding so accented text renders correctly again in the admin.<\/li>\n<li>Added a small follow-up Spanish i18n pass for the latest admin wording.<\/li>\n<\/ul>\n\n<h4>1.6.14<\/h4>\n\n<ul>\n<li>UX: Returned the main Export to CSV and Start Import actions to a stronger fuchsia accent so the key workflow buttons stand out again.<\/li>\n<li>Housekeeping: Aligned the free stylesheet version comment and readme release metadata with the current plugin version.<\/li>\n<\/ul>\n\n<h4>1.6.13<\/h4>\n\n<ul>\n<li>Tightened the free header layout so all four feature chips stay compact and use the full hero width better.<\/li>\n<li>Added a shared hook after the main import flow so Pro tools can appear below preview\/progress instead of interrupting the standard workflow.<\/li>\n<\/ul>\n\n<h4>1.6.11<\/h4>\n\n<ul>\n<li>UX: Rebalanced the main hero feature chips into a compact full-width row so the banner stays shorter and uses space more efficiently.<\/li>\n<\/ul>\n\n<h4>1.6.10<\/h4>\n\n<ul>\n<li>UX: Removed the oversized Pro upsell callout from inside the main hero so the free header stays more compact.<\/li>\n<li>UX: Hide the Free badge automatically when the Pro add-on is active to keep the shared admin header consistent.<\/li>\n<\/ul>\n\n<h4>1.6.9<\/h4>\n\n<ul>\n<li>i18n: Wrapped remaining visible admin and CSV header labels for translation coverage.<\/li>\n<li>i18n: Refreshed the translation template and locale files so the latest free-screen strings are ready for localization.<\/li>\n<\/ul>\n\n<h4>1.6.8<\/h4>\n\n<ul>\n<li>UX: Refined the free admin screen with a cleaner hierarchy, calmer styling, and clearer step-by-step guidance.<\/li>\n<li>UX: Reworked the free vs Pro messaging so the upgrade path stays visible without getting in the way of the core workflow.<\/li>\n<li>Messaging: Clarified more explicitly that updating metadata on already-existing media is a Pro workflow.<\/li>\n<\/ul>\n\n<h4>1.6.6<\/h4>\n\n<ul>\n<li>UX: Removed locked Pro submenus from the free plugin so the admin experience stays focused and less intrusive.<\/li>\n<li>UX: Reworked the free admin page to keep the core export\/import workflow front and center while showing a lighter Pro teaser section.<\/li>\n<li>Messaging: Clarified the free vs Pro boundary around updating metadata on already-existing media items.<\/li>\n<\/ul>\n\n<h4>1.6.5<\/h4>\n\n<ul>\n<li>Internal: Added a service getter so companion add-ons can safely access the free plugin importer without duplicating core logic.<\/li>\n<li>Internal: Added a programmatic import runner for compatible add-ons, including optional dry-run and duplicate-strategy context.<\/li>\n<li>Internal: Added import lifecycle events and request context support so add-ons can store history and extend the import flow without changing the free UI.<\/li>\n<li>Compatibility: This release prepares the free core for the separate Pro add-on while keeping the free plugin clean and fully usable on its own.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Fix: Removed the UTF-8 BOM from AJAX-related PHP files to prevent invalid JSON responses during CSV validation.<\/li>\n<li>Improvement: Added safer importer i18n fallbacks so missing localized keys do not render empty labels in the admin UI.<\/li>\n<li>Improvement: Replaced the external admin Google Font dependency with a local system font stack for a cleaner WordPress.org release.<\/li>\n<li>Improvement: Aligned the admin screen title with the published plugin name.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Improvement: Centralized plugin defaults, feature flags, and extension-ready configuration.<\/li>\n<li>Improvement: Export pipeline refactored to support column definitions and cleaner request handling.<\/li>\n<li>Improvement: Admin screen prepared for future add-on sections and Pro-ready feature slots without changing the free workflow.<\/li>\n<li>Improvement: Import pipeline now supports extensible header definitions and row-level validation hooks.<\/li>\n<li>Fix: Readme and release metadata aligned with the current plugin version.<\/li>\n<\/ul>\n\n<h4>1.4.4<\/h4>\n\n<ul>\n<li>Fix: Prevent duplicated imports by detecting existing attachments via source URL \/ relative path \/ file fingerprint.<\/li>\n<li>Improvement: Store and backfill source and fingerprint meta to make future imports faster and consistent.<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Fix: Removed stray HTML text output in the import form.<\/li>\n<li>UX: Hides third-party admin notices inside the plugin screen to keep the interface clean.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>New: Export all media types with a dedicated \"Media Type\" filter.<\/li>\n<li>New: Import option to honor the original relative path when importing.<\/li>\n<li>New: Downloadable sample CSV template.<\/li>\n<li>Security\/UX: Hardened Local Import Mode to keep file access inside uploads.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>New: Modern drag and drop interface for easier CSV uploads.<\/li>\n<li>New: Advanced export filters for attachments linked to WooCommerce products, posts, or pages.<\/li>\n<li>New: Downloadable import log for better debugging.<\/li>\n<li>UX: Improved file selection with visual feedback.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Security: Major hardening using native WordPress sideload APIs.<\/li>\n<li>New: Date range filters in the export section.<\/li>\n<li>New: Skip Thumbnail Generation option for faster imports.<\/li>\n<li>Improvement: Refactored the plugin into object-oriented classes.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Improved compatibility with PHP 8.x.<\/li>\n<li>Fixed minor UI bugs in the progress bar.<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Added Local Import Mode.<\/li>\n<li>Added automatic cleanup for temporary files.<\/li>\n<li>Improved error reporting for downloads.<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Import and export your WordPress media library from CSV with preview, batch processing, metadata support, and duplicate prevention.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/253957","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=253957"}],"author":[{"embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mairaforesto"}],"wp:attachment":[{"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=253957"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=253957"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=253957"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=253957"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=253957"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/da.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=253957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}