[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fgXIIxo3sbkkudSIKoTyHbHIP_u0kbftSULAfCCgwhW4":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":36,"analysis":138,"fingerprints":433},"mediaflock","MediaFlock","1.0.32","delphiknight","https:\u002F\u002Fprofiles.wordpress.org\u002Fdimitrigog\u002F","\u003Cp>MediaFlock scans your WordPress posts for externally hosted media files and imports them directly into your WordPress media library. After import, it automatically replaces the old external URLs in your post content with the new local URLs, ensuring all your media is served from your own site.\u003C\u002Fp>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Cp>The plugin uses five complementary URL extraction strategies to find external files in your content:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Regex pattern matching\u003C\u002Fstrong> — Scans raw post content for URLs matching configured file extensions.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>HTML anchor tag parsing\u003C\u002Fstrong> — Extracts URLs from \u003Ccode>\u003Ca href>\u003C\u002Fcode> links pointing to external files.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Media tag parsing\u003C\u002Fstrong> — Finds external sources in \u003Ccode>\u003Cimg>\u003C\u002Fcode>, \u003Ccode>\u003Cvideo>\u003C\u002Fcode>, \u003Ccode>\u003Caudio>\u003C\u002Fcode>, and \u003Ccode>\u003Csource>\u003C\u002Fcode> elements.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Srcset attribute parsing\u003C\u002Fstrong> — Detects external images referenced in responsive \u003Ccode>srcset\u003C\u002Fcode> attributes on \u003Ccode>\u003Cimg>\u003C\u002Fcode> and \u003Ccode>\u003Csource>\u003C\u002Fcode> tags.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CSS background-image parsing\u003C\u002Fstrong> — Extracts URLs from \u003Ccode>background-image: url(...)\u003C\u002Fcode> declarations in inline styles and \u003Ccode>\u003Cstyle>\u003C\u002Fcode> blocks.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Batch scanning\u003C\u002Fstrong> — Processes posts in configurable batches (10-200 per request) to handle sites of any size.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dry run mode\u003C\u002Fstrong> — Check file sizes via HEAD requests before committing to an import.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Duplicate prevention\u003C\u002Fstrong> — Already-imported files are detected and skipped automatically.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dead link detection\u003C\u002Fstrong> — URLs that returned errors on previous attempts are tracked and auto-skipped.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Resume interrupted scans\u003C\u002Fstrong> — If a scan is interrupted (browser closed, timeout), resume exactly where you left off.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Progress tracking\u003C\u002Fstrong> — Real-time progress bars for scanning, importing, and dry runs.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Import logs\u003C\u002Fstrong> — Every import attempt is logged with status (success, error, skipped), timestamps, and details.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CSV export\u003C\u002Fstrong> — Download filtered logs as CSV for offline analysis or reporting.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Retry failed imports\u003C\u002Fstrong> — One-click retry of all previously failed imports.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dashboard statistics\u003C\u002Fstrong> — Overview of total imports, success\u002Ferror\u002Fskipped counts, disk space used, and top errors.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable file types\u003C\u002Fstrong> — Choose which file extensions to scan for using a Select2 tagging interface.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multiple URL filters\u003C\u002Fstrong> — Restrict scanning to specific external servers by adding one or more base URLs.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Post type and status filters\u003C\u002Fstrong> — Target specific post types and statuses (publish, draft, pending, private, future).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Quick Scan\u003C\u002Fstrong> — Spot-check a single post by entering its ID or URL.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Permission levels\u003C\u002Fstrong> — Restrict plugin access to administrators only or open it to editors and above.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Internationalization\u003C\u002Fstrong> — Fully translatable with English and Georgian (ka_GE) translations included.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clean uninstall\u003C\u002Fstrong> — Removes all database tables and options when deleted.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>URL Replacement\u003C\u002Fh4>\n\u003Cp>After importing a file, the plugin replaces the external URL in your post content. It handles multiple URL encoding variants to ensure no references are missed:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Standard URLs\u003C\u002Fli>\n\u003Cli>HTML entity-encoded URLs (\u003Ccode>&amp;\u003C\u002Fcode> instead of \u003Ccode>&\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>URL-encoded paths (\u003Ccode>%20\u003C\u002Fcode> for spaces)\u003C\u002Fli>\n\u003Cli>Fully encoded path segments\u003C\u002Fli>\n\u003Cli>Protocol-relative URLs (\u003Ccode>\u002F\u002Fexample.com\u002F...\u003C\u002Fcode>)\u003C\u002Fli>\n\u003C\u002Ful>\n","Scan WordPress posts for external media files and import them into your media library with full control and detailed logging.",0,174,"2026-03-01T07:59:00.000Z","6.9.4","5.0","7.2",[18,19,20,21,22],"external","files","import","media","migration","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmediaflock.1.0.32.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":25,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"dimitrigog",2,600,30,94,"2026-04-04T07:14:33.988Z",[37,57,82,103,118],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":14,"requires_at_least":50,"requires_php":51,"tags":52,"homepage":55,"download_link":56,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"bulk-media-register","Bulk Media Register","1.41","Katsushi Kawamori","https:\u002F\u002Fprofiles.wordpress.org\u002Fkatsushi-kawamori\u002F","\u003Cp>Bulk register files on the server to the Media Library.\u003C\u002Fp>\n\u003Ch4>Register to media library\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Maintain folder structure.\u003C\u002Fli>\n\u003Cli>This create a thumbnail of the image file.\u003C\u002Fli>\n\u003Cli>This create a metadata(Images, Videos, Audios).\u003C\u002Fli>\n\u003Cli>Change the date\u002Ftime.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Sibling plugin\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmoving-media-library\u002F\" rel=\"ugc\">Moving Media Library\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmedia-from-ftp\u002F\" rel=\"ugc\">Media from FTP\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmedia-from-zip\u002F\" rel=\"ugc\">Media from ZIP\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Note\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>If you want to use a multi-byte file name, use UTF-8. The file name is used as the title during registration, but is sanitized and changed to a different file name.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How it works\u003C\u002Fh4>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FVa92SMlFDxk?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n","Bulk register files on the server to the Media Library.",8000,122281,90,22,"2025-11-25T21:42:00.000Z","4.6","8.0",[19,53,20,21,54],"ftp","uploads","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fbulk-media-register\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbulk-media-register.1.41.zip",{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":65,"downloaded":66,"rating":67,"num_ratings":68,"last_updated":69,"tested_up_to":14,"requires_at_least":70,"requires_php":51,"tags":71,"homepage":77,"download_link":78,"security_score":79,"vuln_count":80,"unpatched_count":11,"last_vuln_date":81,"fetched_at":27},"smart-auto-upload-images","Smart Auto Upload Images – Import External Images","1.2.3","Burhan Nasir","https:\u002F\u002Fprofiles.wordpress.org\u002Fburhandodhy\u002F","\u003Cp>Smart Auto Upload Images automatically imports external images from your post content into your WordPress media library. When you save or update a post, the plugin detects any external image URLs, downloads them to your server, and replaces the original URLs with your hosted versions. This improves site performance, ensures image availability, and gives you complete control over your content.\u003C\u002Fp>\n\u003Ch3>Why Auto Upload Images to Your Media Library?\u003C\u002Fh3>\n\u003Cp>When you copy content from external sources or use remote images, you risk broken images when the original source removes them. Hosting images on your own server provides several benefits:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Better SEO performance\u003C\u002Fstrong> – Search engines favor self-hosted images\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Faster page load times\u003C\u002Fstrong> – Eliminates external HTTP requests\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Full content control\u003C\u002Fstrong> – Images remain available even if sources go offline\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How Auto Upload Images Works\u003C\u002Fh3>\n\u003Cp>The plugin runs automatically whenever you save or update a post. Here’s the process:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Scans post content for external image URLs (any image not hosted on your domain)\u003C\u002Fli>\n\u003Cli>Downloads each external image to a temporary location\u003C\u002Fli>\n\u003Cli>Validates image file integrity and format\u003C\u002Fli>\n\u003Cli>Uploads valid images to your WordPress media library\u003C\u002Fli>\n\u003Cli>Replaces original external URLs with new local URLs\u003C\u002Fli>\n\u003Cli>Attaches imported images to your post in the media library\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>No manual intervention required. Just write your content and let the plugin handle the rest.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Ch3>Automatic External Image Detection\u003C\u002Fh3>\n\u003Cp>The plugin automatically identifies external images in your post content when you save. It distinguishes between local images (already hosted on your site) and external images that need importing.\u003C\u002Fp>\n\u003Ch3>Smart URL Replacement\u003C\u002Fh3>\n\u003Cp>After importing images, the plugin intelligently replaces all instances of the external URL with your new local URL. This works with images in:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Post content (Classic Editor and Gutenberg blocks)\u003C\u002Fli>\n\u003Cli>Image galleries\u003C\u002Fli>\n\u003Cli>Featured images\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Media Library Integration\u003C\u002Fh3>\n\u003Cp>All imported images are added to your WordPress media library with proper metadata. You can:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Edit images using WordPress image editor\u003C\u002Fli>\n\u003Cli>View which post each image is attached to\u003C\u002Fli>\n\u003Cli>Set custom alt text during import\u003C\u002Fli>\n\u003Cli>Apply your site’s image optimization settings\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Flexible Domain Exclusions\u003C\u002Fh3>\n\u003Cp>Exclude specific domains from auto-import. Useful for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>CDN-hosted images you want to keep external\u003C\u002Fli>\n\u003Cli>Partner websites where you have permission to hotlink\u003C\u002Fli>\n\u003Cli>Your own secondary domains\u003C\u002Fli>\n\u003Cli>Social media embeds you want to keep as external\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Custom Post Type Control\u003C\u002Fh3>\n\u003Cp>Choose which post types trigger auto-upload. Enable for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Posts and pages (default)\u003C\u002Fli>\n\u003Cli>WooCommerce products\u003C\u002Fli>\n\u003Cli>Custom portfolio post types\u003C\u002Fli>\n\u003Cli>Documentation posts\u003C\u002Fli>\n\u003Cli>Or disable for specific types you want to skip\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Advanced File Naming Patterns\u003C\u002Fh3>\n\u003Cp>Set custom file naming patterns for imported images using dynamic tags:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>%filename%\u003C\u002Fcode> – Original filename\u003C\u002Fli>\n\u003Cli>\u003Ccode>%post_title%\u003C\u002Fcode> – Current post title\u003C\u002Fli>\n\u003Cli>\u003Ccode>%post_id%\u003C\u002Fcode> – Post ID\u003C\u002Fli>\n\u003Cli>\u003Ccode>%image_title%\u003C\u002Fcode> – Image title attribute\u003C\u002Fli>\n\u003Cli>\u003Ccode>%date%\u003C\u002Fcode> – Current date\u003C\u002Fli>\n\u003Cli>\u003Ccode>%time%\u003C\u002Fcode> – Current timestamp\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example: \u003Ccode>%post_title%-%filename%\u003C\u002Fcode> becomes \u003Ccode>my-blog-post-example-image.jpg\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch3>Custom Alt Text Patterns\u003C\u002Fh3>\n\u003Cp>Define alt text patterns for better SEO:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>%post_title%\u003C\u002Fcode> – Use post title in alt text\u003C\u002Fli>\n\u003Cli>\u003Ccode>%filename%\u003C\u002Fcode> – Use filename as alt text\u003C\u002Fli>\n\u003Cli>Custom text – Set consistent alt text across imports\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Image Size Constraints\u003C\u002Fh3>\n\u003Cp>Set maximum width and height for imported images to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Control storage usage\u003C\u002Fli>\n\u003Cli>Maintain consistent image sizes\u003C\u002Fli>\n\u003Cli>Automatically resize oversized images\u003C\u002Fli>\n\u003Cli>Prevent huge images from slowing your site\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Featured Image from URL\u003C\u002Fh3>\n\u003Cp>Set a post’s featured image using an external URL. The plugin will:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Download the image from the URL\u003C\u002Fli>\n\u003Cli>Import it to your media library\u003C\u002Fli>\n\u003Cli>Set it as the post’s featured image\u003C\u002Fli>\n\u003Cli>Work via REST API or post editor\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How to Import External Images from Posts\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Install and activate Auto Upload Images\u003C\u002Fli>\n\u003Cli>Go to Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Auto Upload Images\u003C\u002Fli>\n\u003Cli>Configure your preferences (or use defaults)\u003C\u002Fli>\n\u003Cli>Create or edit any post with external images\u003C\u002Fli>\n\u003Cli>Click Save or Update – images import automatically\u003C\u002Fli>\n\u003Cli>Check your Media Library to see imported images\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>How to Exclude Specific Domains\u003C\u002Fh3>\n\u003Cp>If you want to prevent images from certain domains from being imported:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Go to Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Auto Upload Images\u003C\u002Fli>\n\u003Cli>Find the “Excluded Domains” section\u003C\u002Fli>\n\u003Cli>Enter domains one per line (e.g., cdn.example.com)\u003C\u002Fli>\n\u003Cli>Save settings\u003C\u002Fli>\n\u003Cli>Images from excluded domains will be left as external URLs\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>How to Set Custom File Names for Imported Images\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Navigate to Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Auto Upload Images\u003C\u002Fli>\n\u003Cli>Find “File Name Pattern” setting\u003C\u002Fli>\n\u003Cli>Enter your pattern using available tags:\n\u003Cul>\n\u003Cli>Example: \u003Ccode>%post_title%-%filename%\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Example: \u003Ccode>imported-%date%-%filename%\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Save settings\u003C\u002Fli>\n\u003Cli>New imports will use your naming pattern\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>This helps organize your media library and improves SEO with descriptive file names.\u003C\u002Fp>\n\u003Ch3>How to Set Featured Image via URL\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Using the Post Editor:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Edit your post\u003C\u002Fli>\n\u003Cli>Find the Featured Image section in the sidebar\u003C\u002Fli>\n\u003Cli>Enter the external image URL in the “Set from URL” field\u003C\u002Fli>\n\u003Cli>The image imports automatically and sets as featured image\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Integration with Page Builders\u003C\u002Fh3>\n\u003Cp>Auto Upload Images works with popular page builders:\u003C\u002Fp>\n\u003Ch3>Gutenberg Block Editor\u003C\u002Fh3>\n\u003Cp>All images in Gutenberg blocks are automatically detected and imported when you save the post.\u003C\u002Fp>\n\u003Ch3>Classic Editor\u003C\u002Fh3>\n\u003Cp>External images in Classic Editor content are imported on post save.\u003C\u002Fp>\n\u003Ch3>WooCommerce\u003C\u002Fh3>\n\u003Cp>Enable auto-import for Product post type to automatically import external product images.\u003C\u002Fp>\n\u003Ch3>Custom Post Types\u003C\u002Fh3>\n\u003Cp>Configure any custom post type to trigger auto-import functionality.\u003C\u002Fp>\n\u003Cp>Just ensure Auto Upload Images is active when running imports.\u003C\u002Fp>\n\u003Ch3>Performance and Storage Considerations\u003C\u002Fh3>\n\u003Ch3>Server Storage\u003C\u002Fh3>\n\u003Cp>Imported images consume server storage. Monitor your hosting plan’s disk space if importing large quantities of images.\u003C\u002Fp>\n\u003Ch3>Import Speed\u003C\u002Fh3>\n\u003Cp>Import time depends on:\u003Cbr \u002F>\n* Image file sizes\u003Cbr \u002F>\n* Your server’s download speed\u003Cbr \u002F>\n* Number of images per post\u003Cbr \u002F>\n* Configured maximum dimensions\u003C\u002Fp>\n\u003Ch3>Optimization Tips\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Set maximum width\u002Fheight to reduce storage\u003C\u002Fli>\n\u003Cli>Use an image optimization plugin after import\u003C\u002Fli>\n\u003Cli>Exclude domains hosting very large images\u003C\u002Fli>\n\u003Cli>Test with small batches before bulk imports\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Developer Features\u003C\u002Fh3>\n\u003Ch3>Filter: smart_aui_validate_image_url\u003C\u002Fh3>\n\u003Cp>Programmatically control which image URLs get imported.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>add_filter( ‘smart_aui_validate_image_url’, function( $is_valid, $url ) {\u003Cbr \u002F>\n    \u002F\u002F Skip images from specific paths\u003Cbr \u002F>\n    if ( strpos( $url, ‘\u002Fcdn\u002Favatars\u002F’ ) !== false ) {\u003Cbr \u002F>\n        return false;\u003Cbr \u002F>\n    }\u003Cbr \u002F>\n    return $is_valid;\u003Cbr \u002F>\n}, 10, 2 );\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Ch3>Additional Hooks\u003C\u002Fh3>\n\u003Cp>Check plugin documentation for additional filters and actions to customize behavior.\u003C\u002Fp>\n\u003Ch3>Troubleshooting\u003C\u002Fh3>\n\u003Ch3>Images Not Importing\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem:\u003C\u002Fstrong> External images remain unchanged after saving post\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Check if domain is in excluded domains list\u003Cbr \u002F>\n* Verify your server can make external HTTP requests\u003Cbr \u002F>\n* Check WordPress debug log for errors\u003Cbr \u002F>\n* Ensure PHP has necessary image processing libraries\u003Cbr \u002F>\n* Verify write permissions on uploads directory\u003C\u002Fp>\n\u003Ch3>Import Errors in Debug Log\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem:\u003C\u002Fstrong> Seeing errors in wp-content\u002Fdebug.log\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Check image URL is publicly accessible\u003Cbr \u002F>\n* Verify image format is supported (JPG, PNG, GIF, WebP)\u003Cbr \u002F>\n* Ensure external server allows download\u002Fhotlinking\u003Cbr \u002F>\n* Check SSL certificate validity if using HTTPS images\u003C\u002Fp>\n\u003Ch3>Images Upload but URLs Not Replaced\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem:\u003C\u002Fstrong> Images added to media library but old URLs remain\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Clear any caching plugins\u003Cbr \u002F>\n* Check post content in Text\u002FHTML mode\u003Cbr \u002F>\n* Verify images aren’t in excluded domain list\u003Cbr \u002F>\n* Review file naming pattern doesn’t cause conflicts\u003C\u002Fp>\n\u003Ch3>Duplicate Images in Media Library\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem:\u003C\u002Fstrong> Same image imported multiple times\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Plugin should detect and reuse existing images (v1.2.0+)\u003Cbr \u002F>\n* Check if images have different URLs but same file\u003Cbr \u002F>\n* Clear media library of duplicates and re-save post\u003C\u002Fp>\n\u003Ch3>Featured Image Not Setting from URL\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem:\u003C\u002Fstrong> Featured image URL not importing\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Verify URL is publicly accessible\u003Cbr \u002F>\n* Check image format is supported\u003Cbr \u002F>\n* Ensure PHP memory limit is sufficient\u003Cbr \u002F>\n* Review error logs for specific error messages\u003C\u002Fp>\n\u003Ch3>Maximum Width\u002FHeight Not Applied\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Problem:\u003C\u002Fstrong> Images exceed configured dimensions\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Solutions:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Ensure GD or ImageMagick is installed on server\u003Cbr \u002F>\n* Check PHP memory limit allows image processing\u003Cbr \u002F>\n* Verify dimensions are set in plugin settings\u003Cbr \u002F>\n* Test with smaller images first\u003C\u002Fp>\n","Import external images automatically on save. Adds to media library and updates URLs. No manual downloads. Works with any post type.",2000,9668,80,4,"2026-01-31T07:43:00.000Z","6.2",[72,73,74,75,76],"auto-upload","external-images","import-images","media-library","seo","https:\u002F\u002Fburhandodhy.me","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsmart-auto-upload-images.1.2.3.zip",97,1,"2025-11-07 00:00:00",{"slug":83,"name":84,"version":85,"author":86,"author_profile":87,"description":88,"short_description":89,"active_installs":90,"downloaded":91,"rating":25,"num_ratings":92,"last_updated":93,"tested_up_to":94,"requires_at_least":95,"requires_php":96,"tags":97,"homepage":100,"download_link":101,"security_score":102,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"gl-import-external-images","GL Import External Images","3.1","Asiqur Rahman","https:\u002F\u002Fprofiles.wordpress.org\u002Fimasikur22\u002F","\u003Cp>With the help of this plugin, you can become hassle-free from downloading and re-uploading images from hosted elsewhere to your site.\u003C\u002Fp>\n\u003Cp>The \u003Cstrong>GL Import External Images\u003C\u002Fstrong> plugin for WordPress is designed to facilitate downloading and inserting images directly into your WP Media Library from external URLs, streamlining the process of importing media content. This plugin enhances user efficiency by allowing seamless integration of external images, thereby improving content management workflows. Be a better online citizen: avoid image hot-linking with ease!\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Easily download images from external URLs directly into your WordPress Media Library.\u003C\u002Fli>\n\u003Cli>After successful uploading, you can select or edit (like caption, title, alt, description) the image.\u003C\u002Fli>\n\u003Cli>Full integration with WordPress Media Library – including creation of thumbnail images.\u003C\u002Fli>\n\u003Cli>Simplifies the process of adding external images to your website and saves you time.\u003C\u002Fli>\n\u003Cli>Saves time by automating the image import process.\u003C\u002Fli>\n\u003Cli>Lightweight and code written following WordPress coding standards.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Like this plugin? Please consider \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fgl-import-external-images\u002Freviews\u002F\" rel=\"ugc\">leaving a 5-star review\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Want to suggest any feature? Please consider \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fgl-import-external-images\u002F\" rel=\"ugc\">Create a new topic\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n","Import and insert images to WordPress Media Library from external URLs.",800,7007,6,"2024-11-29T15:51:00.000Z","6.7.5","2.6.0","7.0",[98,73,99,20,75],"download","image","https:\u002F\u002Fgreenlifeit.com\u002Fplugins","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgl-import-external-images.3.1.zip",92,{"slug":104,"name":105,"version":106,"author":107,"author_profile":108,"description":109,"short_description":110,"active_installs":32,"downloaded":111,"rating":25,"num_ratings":80,"last_updated":112,"tested_up_to":14,"requires_at_least":113,"requires_php":23,"tags":114,"homepage":23,"download_link":117,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"calliope-media-import-export","Export\u002FImport Media","1.4.4","Maira Foresto","https:\u002F\u002Fprofiles.wordpress.org\u002Fmairaforesto\u002F","\u003Cp>\u003Cstrong>Export\u002FImport Media\u003C\u002Fstrong> is the robust solution for migrating your WordPress media library from one site to another, maintaining all SEO metadata.\u003C\u002Fp>\n\u003Cp>The plugin generates a CSV file containing all critical information (URLs, paths, alt text, titles, captions, descriptions). You can then use this file to import images into a new site seamlessly.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>🚀 New in version 1.4.0:\u003C\u002Fstrong>\u003Cbr \u002F>\nWe have completely redesigned the interface! Now featuring a modern \u003Cstrong>Drag & Drop\u003C\u002Fstrong> area, \u003Cstrong>Advanced Export Filters\u003C\u002Fstrong> (by Product, Post, or Page), and a \u003Cstrong>Downloadable Log\u003C\u002Fstrong> for better control.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Why use this plugin?\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Cstrong>Perfect for Migrations:\u003C\u002Fstrong> Move thousands of images without server timeouts.\u003Cbr \u002F>\n* \u003Cstrong>SEO Friendly:\u003C\u002Fstrong> Keeps all your Alt Text and Titles intact.\u003Cbr \u002F>\n* \u003Cstrong>Developer Ready:\u003C\u002Fstrong> Completely refactored with hooks and filters.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Modern Drag & Drop:\u003C\u002Fstrong> Upload your CSV files easily with our new visual interface.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Secure Import:\u003C\u002Fstrong> Uses native WordPress APIs (Sideloading) to ensure files are safe and valid.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Smart Export Filters:\u003C\u002Fstrong> Export only what you need. Filter by \u003Cstrong>Date Range\u003C\u002Fstrong> or by \u003Cstrong>Attachment Type\u003C\u002Fstrong> (WooCommerce Products, Posts, Pages, or Unattached).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Performance Mode:\u003C\u002Fstrong> Option to \u003Cstrong>Skip Thumbnail Generation\u003C\u002Fstrong> for lightning-fast imports (up to 5x faster).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Downloadable Log:\u003C\u002Fstrong> Get a detailed \u003Ccode>.txt\u003C\u002Fcode> log file after import to debug any issues.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Duplicate Prevention:\u003C\u002Fstrong> Checks file hash (MD5) to prevent importing the same image twice.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Batch Processing:\u003C\u002Fstrong> AJAX-powered process prevents server timeouts, even with large files.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Local Import Mode:\u003C\u002Fstrong> Link images already present in your \u003Ccode>\u002Fuploads\u002F\u003C\u002Fcode> folder without downloading them again.\u003C\u002Fli>\n\u003C\u002Ful>\n","The ultimate tool to migrate your media library. Export to CSV with Advanced Filters and Import securely with Drag & Drop (images, videos, audio a &hellip;",2460,"2026-02-28T17:24:00.000Z","5.6",[115,116,20,21,22],"csv","export","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcalliope-media-import-export.zip",{"slug":119,"name":120,"version":121,"author":122,"author_profile":123,"description":124,"short_description":125,"active_installs":126,"downloaded":127,"rating":25,"num_ratings":128,"last_updated":129,"tested_up_to":14,"requires_at_least":130,"requires_php":131,"tags":132,"homepage":136,"download_link":137,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"post-export-import-with-media","Post Export Import with Media","1.3.0","wpazleen","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpazleen\u002F","\u003Cp>\u003Cstrong>Post Export Import with Media\u003C\u002Fstrong> is a simple yet powerful WordPress plugin that helps you securely transfer posts, pages, media, widgets, menus, themes, plugins & settings along with their media files between WordPress sites. Unlike the default exporter, this plugin ensures that images and attachments are included, so you don’t end up with broken links or missing media.\u003C\u002Fp>\n\u003Cp>Whether you’re moving to a new host, creating staging sites, or backing up your content, this plugin handles everything with professional-grade reliability, user-friendly interface and powerful built-in Batch Processing for high-performance transfers all designed for simplicity and control.\u003C\u002Fp>\n\u003Ch3>✨ Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Export and import posts with all attached media files, metadata, categories, tags, and custom fields  \u003C\u002Fli>\n\u003Cli>Automatic media file detection and download during import\u003C\u002Fli>\n\u003Cli>Real-time progress tracking for smooth migration  \u003C\u002Fli>\n\u003Cli>Smart image handling – reuses existing media, downloads missing files\u003C\u002Fli>\n\u003Cli>Support for featured images and inline content images\u003C\u002Fli>\n\u003Cli>Bulk delete functionality with confirmation dialogs\u003C\u002Fli>\n\u003Cli>Secure data handling to prevent errors or data loss  \u003C\u002Fli>\n\u003Cli>Lightweight and beginner-friendly interface  \u003C\u002Fli>\n\u003Cli>Works for bloggers, developers, and site administrators  \u003C\u002Fli>\n\u003Cli>Batch Processing Settings (Optimized for large-scale websites)\u003C\u002Fli>\n\u003Cli>Scheduled Exports (Automated Backups)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>\u003Cstrong>Pages Export\u002FImport\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Complete page hierarchy preservation\u003C\u002Fli>\n\u003Cli>Template assignments and page metadata\u003C\u002Fli>\n\u003Cli>Featured images and content images handling\u003C\u002Fli>\n\u003Cli>Parent-child page relationships maintained\u003C\u002Fli>\n\u003Cli>Custom page attributes and settings\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>\u003Cstrong>WordPress Settings Backup\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>7 settings categories: General, Writing, Reading, Discussion, Media, Permalinks, Privacy\u003C\u002Fli>\n\u003Cli>Site icon export\u002Fimport with URL information\u003C\u002Fli>\n\u003Cli>Selective import – choose which settings to import\u003C\u002Fli>\n\u003Cli>Detailed import logs showing success\u002Ffailure for each setting\u003C\u002Fli>\n\u003Cli>Handles deprecated WordPress options automatically\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>\u003Cstrong>Widgets & Navigation Menus\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Complete widget configuration export\u002Fimport\u003C\u002Fli>\n\u003Cli>Widget positions and sidebar assignments\u003C\u002Fli>\n\u003Cli>Navigation menu structure with all items\u003C\u002Fli>\n\u003Cli>Menu locations and theme assignments\u003C\u002Fli>\n\u003Cli>Menu item hierarchy and custom properties\u003C\u002Fli>\n\u003Cli>Support for all widget types including custom HTML, media widgets\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>\u003Cstrong>Themes & Plugins Backup\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Export active theme, all themes, or selected themes\u003C\u002Fli>\n\u003Cli>Export active plugins, all plugins, or selected plugins\u003C\u002Fli>\n\u003Cli>ZIP file creation with proper directory structure\u003C\u002Fli>\n\u003Cli>Import with replace existing or keep both options\u003C\u002Fli>\n\u003Cli>Automatic theme\u002Fplugin activation after import\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>\u003Cstrong>Advanced Admin Features\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Admin Download Buttons\u003C\u002Fstrong> – Add download buttons to WordPress themes.php and plugins.php pages\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Media Statistics\u003C\u002Fstrong> – Comprehensive media library analysis with file types, sizes, and usage\u003C\u002Fli>\n\u003Cli>\u003Cstrong>System Configuration Test\u003C\u002Fstrong> – Check server capabilities and requirements\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Plugin Recommendations\u003C\u002Fstrong> – Curated list of useful WordPress plugins\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🎯 \u003Cstrong>Perfect For\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Web Developers\u003C\u002Fstrong> – Quickly clone sites for development and testing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Site Migrations\u003C\u002Fstrong> – Move WordPress sites between hosts seamlessly  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Backup Solutions\u003C\u002Fstrong> – Create complete site backups including media\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Staging Sites\u003C\u002Fstrong> – Duplicate production sites for safe testing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Client Handoffs\u003C\u002Fstrong> – Package complete sites for client delivery\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multi-site Management\u003C\u002Fstrong> – Sync content between multiple WordPress installations\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🔧 \u003Cstrong>Technical Excellence\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Security First\u003C\u002Fstrong> – All operations use WordPress nonces and capability checks\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Memory Efficient\u003C\u002Fstrong> – Handles large sites without memory issues\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cross-Platform\u003C\u002Fstrong> – Works on Windows, Linux, and macOS servers\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Error Recovery\u003C\u002Fstrong> – Comprehensive error handling and user feedback\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Progress Tracking\u003C\u002Fstrong> – Real-time updates during long operations\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clean Code\u003C\u002Fstrong> – Well-documented, maintainable codebase following WordPress standards\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>📊 \u003Cstrong>Real-time Progress & Logging\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cp>Every operation provides detailed feedback:\u003Cbr \u002F>\n* Progress bars showing completion percentage\u003Cbr \u002F>\n* Timestamped logs with success\u002Fwarning\u002Ferror indicators\u003Cbr \u002F>\n* Detailed statistics (items imported, skipped, failed)\u003Cbr \u002F>\n* Clear error messages with actionable solutions\u003Cbr \u002F>\n* Import\u002Fexport summaries with file information\u003C\u002Fp>\n\u003Ch3>🎨 \u003Cstrong>User Experience\u003C\u002Fstrong>\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Intuitive Interface\u003C\u002Fstrong> – Clean, modern admin interface\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Responsive Design\u003C\u002Fstrong> – Works perfectly on desktop and mobile\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Modal Confirmations\u003C\u002Fstrong> – Safe operations with confirmation dialogs\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Detailed Help\u003C\u002Fstrong> – Comprehensive descriptions and usage instructions\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Professional Styling\u003C\u002Fstrong> – Matches WordPress admin design language\u003C\u002Fli>\n\u003C\u002Ful>\n","Easily export and import WP posts, pages, media, widgets, menus, themes, plugins & settings with their media files- secure, fast, and with real-ti &hellip;",500,2796,3,"2026-02-13T16:23:00.000Z","6.7","7.4",[133,20,22,134,135],"export-media","page-export","post-export","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpost-export-import-with-media\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-export-import-with-media.1.3.0.zip",{"attackSurface":139,"codeSignals":206,"taintFlows":253,"riskAssessment":425,"analyzedAt":432},{"hooks":140,"ajaxHandlers":159,"restRoutes":202,"shortcodes":203,"cronEvents":204,"entryPointCount":205,"unprotectedCount":80},[141,147,150,154],{"type":142,"name":143,"callback":144,"file":145,"line":146},"action","admin_menu","add_admin_menu","mediaflock.php",29,{"type":142,"name":148,"callback":149,"file":145,"line":33},"admin_enqueue_scripts","enqueue_scripts",{"type":142,"name":151,"callback":152,"file":145,"line":153},"admin_init","handle_csv_export",41,{"type":155,"name":156,"callback":157,"file":145,"line":158},"filter","upload_dir","anonymous",1219,[160,166,170,174,178,182,186,190,194,198],{"action":161,"nopriv":162,"callback":163,"hasNonce":164,"hasCapCheck":164,"file":145,"line":165},"mflk_scan_post",false,"ajax_scan_post",true,31,{"action":167,"nopriv":162,"callback":168,"hasNonce":164,"hasCapCheck":164,"file":145,"line":169},"mflk_scan_all_posts","ajax_scan_all_posts",32,{"action":171,"nopriv":162,"callback":172,"hasNonce":164,"hasCapCheck":164,"file":145,"line":173},"mflk_scan_single_post","ajax_scan_single_post",33,{"action":175,"nopriv":162,"callback":176,"hasNonce":164,"hasCapCheck":164,"file":145,"line":177},"mflk_scan_batch_posts","ajax_scan_batch_posts",34,{"action":179,"nopriv":162,"callback":180,"hasNonce":164,"hasCapCheck":164,"file":145,"line":181},"mflk_import_file","ajax_import_file",35,{"action":183,"nopriv":162,"callback":184,"hasNonce":164,"hasCapCheck":164,"file":145,"line":185},"mflk_clear_dead_links","ajax_clear_dead_links",36,{"action":187,"nopriv":162,"callback":188,"hasNonce":164,"hasCapCheck":164,"file":145,"line":189},"mflk_get_failed_imports","ajax_get_failed_imports",37,{"action":191,"nopriv":162,"callback":192,"hasNonce":164,"hasCapCheck":164,"file":145,"line":193},"mflk_delete_log_entry","ajax_delete_log_entry",38,{"action":195,"nopriv":162,"callback":196,"hasNonce":164,"hasCapCheck":164,"file":145,"line":197},"mflk_dry_run","ajax_dry_run",39,{"action":199,"nopriv":162,"callback":200,"hasNonce":162,"hasCapCheck":162,"file":145,"line":201},"mflk_get_logs","ajax_get_logs",40,[],[],[],10,{"dangerousFunctions":207,"sqlUsage":208,"outputEscaping":240,"fileOperations":31,"externalRequests":31,"nonceChecks":210,"capabilityChecks":248,"bundledLibraries":249},[],{"prepared":209,"raw":210,"locations":211},15,12,[212,215,218,221,223,225,227,229,231,233,236,238],{"file":145,"line":213,"context":214},86,"$wpdb->query() with variable interpolation",{"file":145,"line":216,"context":217},394,"$wpdb->get_var() with variable interpolation",{"file":145,"line":219,"context":220},408,"$wpdb->get_results() with variable interpolation",{"file":145,"line":222,"context":217},414,{"file":145,"line":224,"context":220},580,{"file":145,"line":226,"context":214},650,{"file":145,"line":228,"context":217},659,{"file":145,"line":230,"context":220},773,{"file":145,"line":232,"context":217},789,{"file":145,"line":234,"context":235},796,"$wpdb->get_col() with variable interpolation",{"file":145,"line":237,"context":220},820,{"file":145,"line":239,"context":220},1306,{"escaped":241,"rawEcho":31,"locations":242},118,[243,246],{"file":145,"line":244,"context":245},645,"raw output",{"file":145,"line":247,"context":245},651,11,[250],{"name":251,"version":26,"knownCves":252},"Select2",[],[254,272,302,314,327,341,352,367],{"entryPoint":255,"graph":256,"unsanitizedCount":11,"severity":271},"handle_csv_export (mediaflock.php:558)",{"nodes":257,"edges":269},[258,263],{"id":259,"type":260,"label":261,"file":145,"line":262},"n0","source","$_GET",574,{"id":264,"type":265,"label":266,"file":145,"line":267,"wp_function":268},"n1","sink","header() [Header Injection]",593,"header",[270],{"from":259,"to":264,"sanitized":164},"low",{"entryPoint":273,"graph":274,"unsanitizedCount":11,"severity":271},"render_settings_page (mediaflock.php:629)",{"nodes":275,"edges":298},[276,279,282,286,289,293],{"id":259,"type":260,"label":277,"file":145,"line":278},"$_POST['file_types']",633,{"id":264,"type":265,"label":280,"file":145,"line":278,"wp_function":281},"update_option() [Settings Manipulation]","update_option",{"id":283,"type":260,"label":284,"file":145,"line":285},"n2","$_POST (x2)",635,{"id":287,"type":265,"label":280,"file":145,"line":288,"wp_function":281},"n3",638,{"id":290,"type":260,"label":291,"file":145,"line":292},"n4","$_POST",639,{"id":294,"type":265,"label":295,"file":145,"line":296,"wp_function":297},"n5","echo() [XSS]",717,"echo",[299,300,301],{"from":259,"to":264,"sanitized":164},{"from":283,"to":287,"sanitized":164},{"from":290,"to":294,"sanitized":164},{"entryPoint":303,"graph":304,"unsanitizedCount":11,"severity":271},"ajax_scan_all_posts (mediaflock.php:909)",{"nodes":305,"edges":312},[306,308],{"id":259,"type":260,"label":291,"file":145,"line":307},926,{"id":264,"type":265,"label":309,"file":145,"line":310,"wp_function":311},"get_col() [SQLi]",953,"get_col",[313],{"from":259,"to":264,"sanitized":164},{"entryPoint":315,"graph":316,"unsanitizedCount":80,"severity":326},"render_logs_page (mediaflock.php:380)",{"nodes":317,"edges":324},[318,320],{"id":259,"type":260,"label":261,"file":145,"line":319},384,{"id":264,"type":265,"label":321,"file":145,"line":322,"wp_function":323},"get_results() [SQLi]",399,"get_results",[325],{"from":259,"to":264,"sanitized":162},"high",{"entryPoint":328,"graph":329,"unsanitizedCount":80,"severity":326},"ajax_scan_single_post (mediaflock.php:972)",{"nodes":330,"edges":338},[331,333,336],{"id":259,"type":260,"label":291,"file":145,"line":332},1016,{"id":264,"type":334,"label":335,"file":145,"line":332},"transform","→ mark_imported_files()",{"id":283,"type":265,"label":321,"file":145,"line":337,"wp_function":323},1694,[339,340],{"from":259,"to":264,"sanitized":162},{"from":264,"to":283,"sanitized":162},{"entryPoint":342,"graph":343,"unsanitizedCount":80,"severity":326},"ajax_scan_post (mediaflock.php:1107)",{"nodes":344,"edges":349},[345,347,348],{"id":259,"type":260,"label":291,"file":145,"line":346},1136,{"id":264,"type":334,"label":335,"file":145,"line":346},{"id":283,"type":265,"label":321,"file":145,"line":337,"wp_function":323},[350,351],{"from":259,"to":264,"sanitized":162},{"from":264,"to":283,"sanitized":162},{"entryPoint":353,"graph":354,"unsanitizedCount":80,"severity":326},"ajax_import_file (mediaflock.php:1145)",{"nodes":355,"edges":364},[356,358,360],{"id":259,"type":260,"label":291,"file":145,"line":357},1165,{"id":264,"type":334,"label":359,"file":145,"line":357},"→ is_already_imported()",{"id":283,"type":265,"label":361,"file":145,"line":362,"wp_function":363},"get_var() [SQLi]",1735,"get_var",[365,366],{"from":259,"to":264,"sanitized":162},{"from":264,"to":283,"sanitized":162},{"entryPoint":368,"graph":369,"unsanitizedCount":68,"severity":326},"\u003Cmediaflock> (mediaflock.php:0)",{"nodes":370,"edges":412},[371,372,373,374,375,376,377,379,381,383,385,387,389,392,395,397,399,402,404,406,408,410],{"id":259,"type":260,"label":261,"file":145,"line":319},{"id":264,"type":265,"label":321,"file":145,"line":322,"wp_function":323},{"id":283,"type":260,"label":261,"file":145,"line":262},{"id":287,"type":265,"label":266,"file":145,"line":267,"wp_function":268},{"id":290,"type":260,"label":277,"file":145,"line":278},{"id":294,"type":265,"label":280,"file":145,"line":278,"wp_function":281},{"id":378,"type":260,"label":284,"file":145,"line":285},"n6",{"id":380,"type":265,"label":280,"file":145,"line":288,"wp_function":281},"n7",{"id":382,"type":260,"label":291,"file":145,"line":292},"n8",{"id":384,"type":265,"label":295,"file":145,"line":296,"wp_function":297},"n9",{"id":386,"type":260,"label":291,"file":145,"line":307},"n10",{"id":388,"type":265,"label":309,"file":145,"line":310,"wp_function":311},"n11",{"id":390,"type":260,"label":284,"file":145,"line":391},"n12",1153,{"id":393,"type":265,"label":321,"file":145,"line":394,"wp_function":323},"n13",1687,{"id":396,"type":260,"label":291,"file":145,"line":391},"n14",{"id":398,"type":265,"label":361,"file":145,"line":362,"wp_function":363},"n15",{"id":400,"type":260,"label":401,"file":145,"line":332},"n16","$_POST (x3)",{"id":403,"type":334,"label":335,"file":145,"line":332},"n17",{"id":405,"type":265,"label":321,"file":145,"line":337,"wp_function":323},"n18",{"id":407,"type":260,"label":291,"file":145,"line":357},"n19",{"id":409,"type":334,"label":359,"file":145,"line":357},"n20",{"id":411,"type":265,"label":361,"file":145,"line":362,"wp_function":363},"n21",[413,414,415,416,417,418,419,420,421,422,423,424],{"from":259,"to":264,"sanitized":164},{"from":283,"to":287,"sanitized":164},{"from":290,"to":294,"sanitized":164},{"from":378,"to":380,"sanitized":164},{"from":382,"to":384,"sanitized":164},{"from":386,"to":388,"sanitized":164},{"from":390,"to":393,"sanitized":164},{"from":396,"to":398,"sanitized":164},{"from":400,"to":403,"sanitized":162},{"from":403,"to":405,"sanitized":162},{"from":407,"to":409,"sanitized":162},{"from":409,"to":411,"sanitized":162},{"summary":426,"deductions":427},"The mediaflock plugin v1.0.32 exhibits a mixed security posture. While it demonstrates good practices in output escaping (98%) and generally implements nonce and capability checks for its entry points, there are significant concerns. The presence of 10 AJAX handlers, with one lacking any authentication checks, represents a direct and serious risk. Furthermore, the taint analysis reveals 5 flows with unsanitized paths, all classified as high severity. These unsanitized paths are particularly worrying as they suggest potential injection vulnerabilities that could be exploited if combined with other weaknesses or directly through the unprotected AJAX handler.\n\nThe plugin's vulnerability history is a strong positive, showing no recorded CVEs. This suggests that, at least historically, it has not been a target for widespread exploitation or has been well-maintained in terms of known vulnerabilities. However, the lack of historical vulnerabilities does not negate the risks identified in the static analysis. The current code analysis points to specific, actionable security flaws that need immediate attention. In conclusion, while the plugin benefits from a clean CVE record and good output escaping, the unprotected AJAX handler and high-severity unsanitized taint flows present substantial risks that outweigh these strengths.",[428,430],{"reason":429,"points":205},"AJAX handler without auth checks",{"reason":431,"points":209},"High severity taint flows with unsanitized paths","2026-03-17T06:20:53.961Z",{"wat":434,"direct":447},{"assetPaths":435,"generatorPatterns":440,"scriptPaths":441,"versionParams":442},[436,437,438,439],"\u002Fwp-content\u002Fplugins\u002Fmediaflock\u002Fassets\u002Fadmin.css","\u002Fwp-content\u002Fplugins\u002Fmediaflock\u002Fassets\u002Fadmin.js","\u002Fwp-content\u002Fplugins\u002Fmediaflock\u002Fassets\u002Fselect2.min.css","\u002Fwp-content\u002Fplugins\u002Fmediaflock\u002Fassets\u002Fselect2.min.js",[],[439,437],[443,444,445,446],"mediaflock\u002Fassets\u002Fadmin.css?ver=","mediaflock\u002Fassets\u002Fadmin.js?ver=","mediaflock\u002Fassets\u002Fselect2.min.css?ver=","mediaflock\u002Fassets\u002Fselect2.min.js?ver=",{"cssClasses":448,"htmlComments":457,"htmlAttributes":462,"restEndpoints":472,"jsGlobals":476,"shortcodeOutput":478},[449,450,451,452,453,454,455,456],"mediaflock-scanning","mediaflock-progress-bar","mediaflock-progress-label","mediaflock-results-table","mediaflk-scan-button","mediaflk-import-button","mediaflk-clear-dead-links-button","mediaflk-logs-table",[458,459,460,461],"\u003C!-- MediaFlock Admin Page -->","\u003C!-- MediaFlock Dashboard -->","\u003C!-- MediaFlock Logs -->","\u003C!-- MediaFlock Settings -->",[463,464,465,466,467,468,469,470,471],"data-nonce='mflk_scan_all_posts'","data-nonce='mflk_scan_single_post'","data-nonce='mflk_scan_batch_posts'","data-nonce='mflk_scan_post'","data-nonce='mflk_import_file'","data-nonce='mflk_clear_dead_links'","data-nonce='mflk_get_failed_imports'","data-nonce='mflk_delete_log_entry'","data-nonce='mflk_dry_run'",[473,474,475],"\u002Fwp-json\u002Fmediaflock\u002Fv1\u002Fscan","\u002Fwp-json\u002Fmediaflock\u002Fv1\u002Fimport","\u002Fwp-json\u002Fmediaflock\u002Fv1\u002Flogs",[477],"mflkAjax",[]]