[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fx6YsV0638HCBqSsmVWR-fmpWloV6IXAJbxrvASYONAA":3,"$fwiaHDvyuuNd4uqOdHBgrAVX4coEzdPKkzk-LpfPlWKU":207},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":39,"analysis":144,"fingerprints":188},"simple-wp-retina","Simple WP Retina","1.1.1","Jonathan Desrosiers","https:\u002F\u002Fprofiles.wordpress.org\u002Fdesrosj\u002F","\u003Cp>Seamlessly switches out images on Retina and other high pixel density screens with @2x versions.\u003C\u002Fp>\n\u003Cp>The switch happens server side saving on HTTP requests.\u003C\u002Fp>\n\u003Cp>No action is required on your part other than to activate it and to regenerate your thumbnails with the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fregenerate-thumbnails\u002F\" rel=\"ugc\">Regenerate Thumbnails\u003C\u002Fa> plugin.\u003C\u002Fp>\n\u003Cp>Plugin automatically:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Detects a HighDPI screen such as a Retina display\u003C\u002Fli>\n\u003Cli>Detects all image sizes added using add_image_size() and adds @2x versions.\u003C\u002Fli>\n\u003Cli>Replaces featured thumbnails and content images with the @2x versions for users with HighDPI screens.\u003C\u002Fli>\n\u003C\u002Ful>\n","Seamlessly replaces images with @2x versions on Retina and other high pixel density screens. Change is performed server side saving requests.",1000,32339,80,2,"2017-11-28T19:20:00.000Z","3.4.2","3.0","",[20,21,22,23,24],"2x","high-dpi","high-pixel-density","high-resolution-screens","retina","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fsimple-wp-retina\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-wp-retina.1.1.1.zip",85,0,null,"2026-04-06T09:54:40.288Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":27,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},"desrosj",9,21200,30,84,"2026-04-06T12:40:17.220Z",[40,60,77,102,121],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":48,"downloaded":49,"rating":50,"num_ratings":14,"last_updated":51,"tested_up_to":52,"requires_at_least":53,"requires_php":18,"tags":54,"homepage":18,"download_link":59,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"picturefill-fix-for-woocommerce","Picturefill fix for WooCommerce","1.0.1","jeremymoseley","https:\u002F\u002Fprofiles.wordpress.org\u002Fjeremymoseley\u002F","\u003Cp>If you love WooCommerce and WP Retina 2x you have likely ran into an issue on variable product pages if you are using the recommended retina method of picturefill. When selecting a variation with an attached image it should replace the product image shown. Unfortunately, the way that WooCommerce replaces the image it is not compatible with the picturefill method… until now!\u003C\u002Fp>\n","Adds WP Retina 2x picturefill compatibility for WooCommerce variable product images.",10,1766,100,"2015-10-29T12:41:00.000Z","4.3.34","4.1",[55,24,56,57,58],"picturefill","variable-product","woocommerce","wp-retina-2x","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpicturefill-fix-for-woocommerce.1.0.1.zip",{"slug":61,"name":62,"version":43,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":48,"downloaded":67,"rating":28,"num_ratings":28,"last_updated":68,"tested_up_to":69,"requires_at_least":70,"requires_php":18,"tags":71,"homepage":75,"download_link":76,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"wp-retina-image","WP Retina Image","wadadanet","https:\u002F\u002Fprofiles.wordpress.org\u002Fwadadanet\u002F","\u003Cp>Just by uploading foo@2x.png, resized 1x are created automatically\u003C\u002Fp>\n\u003Ch4>How to use\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>When used for posting\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Col>\n\u003Cli>Upload file with ‘@2x’ in file name\u003C\u002Fli>\n\u003Cli>Select ‘size item’ as ‘1x size’ when inserting media\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cul>\n\u003Cli>PHP\u003Cbr \u002F>\necho(wp_get_attachment_image( IMAGE_ID,”1x” ));\u003C\u002Fli>\n\u003C\u002Ful>\n","Just by uploading foo@2x.png, resized 1x are created automatically",2012,"2017-04-25T02:17:00.000Z","4.7.33","4.7.3",[20,72,73,74,24],"auto","image","media","https:\u002F\u002Fwww.coffee-break-designs.com\u002Fproduction\u002Fwp-retina-image\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-retina-image.1.0.2.zip",{"slug":58,"name":78,"version":79,"author":80,"author_profile":81,"description":82,"short_description":83,"active_installs":84,"downloaded":85,"rating":86,"num_ratings":87,"last_updated":88,"tested_up_to":89,"requires_at_least":90,"requires_php":91,"tags":92,"homepage":97,"download_link":98,"security_score":99,"vuln_count":100,"unpatched_count":28,"last_vuln_date":101,"fetched_at":30},"Perfect Images: Regenerate Thumbnails, Image Sizes, WebP & AVIF","7.1.4","Jordy Meow","https:\u002F\u002Fprofiles.wordpress.org\u002Ftigroumeow\u002F","\u003Cp>\u003Cstrong>Perfect Images handles the basics of WordPress image management that should have been built-in from the start.\u003C\u002Fstrong> Manage image sizes, disable the ones you don’t need, add custom sizes, and regenerate thumbnails in bulk. It’s the essential foundation every WordPress install needs for clean, efficient image handling.\u003C\u002Fp>\n\u003Cp>Think of it as your image management base layer. WordPress creates too many sizes? Disable them. Need a custom thumbnail size? Add it. Want retina support or modern formats like WebP\u002FAVIF? Enable those modules. Perfect Images gives you complete control without bloat.\u003C\u002Fp>\n\u003Cp>Explore \u003Ca href=\"https:\u002F\u002Fmeowapps.com\u002Fwp-retina-2x\" rel=\"nofollow ugc\">our official site\u003C\u002Fa> and check out \u003Ca href=\"https:\u002F\u002Fmeowapps.com\u002Fwp-retina-2x\u002Ftutorial\u002F\" rel=\"nofollow ugc\">the tutorial\u003C\u002Fa> to get started.\u003C\u002Fp>\n\u003Ch3>Core Features\u003C\u002Fh3>\n\u003Cp>⚙️ \u003Cstrong>Image Size Management\u003C\u002Fstrong>\u003Cbr \u002F>\nThe foundation of everything. View all registered image sizes (WordPress defaults, theme sizes, plugin sizes), disable the ones you don’t need, and add custom sizes. Finally, control over those pesky WordPress-generated sizes like \u003Ccode>medium_large\u003C\u002Fcode>, \u003Ccode>1536x1536\u003C\u002Fcode>, and \u003Ccode>2048x2048\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>🔄 \u003Cstrong>Regenerate Thumbnails\u003C\u002Fstrong>\u003Cbr \u002F>\nBulk regenerate thumbnails after changing sizes or switching themes. Progress tracking, smart processing, and automatic cleanup of old unused sizes.\u003C\u002Fp>\n\u003Cp>🖼️ \u003Cstrong>Retina Images (Module)\u003C\u002Fstrong>\u003Cbr \u002F>\nOptional module for high-DPI displays. Automatically generate and serve crisp @2x versions of your thumbnails. Works seamlessly with WordPress responsive images.\u003C\u002Fp>\n\u003Cp>🎨 \u003Cstrong>Modern Formats (Module)\u003C\u002Fstrong>\u003Cbr \u002F>\nOptional WebP\u002FAVIF conversion. Convert images to modern formats for smaller file sizes and faster loading—without replacing your originals.\u003C\u002Fp>\n\u003Cp>🚀 \u003Cstrong>Easy IO (Module)\u003C\u002Fstrong>\u003Cbr \u002F>\nOptional CDN-based image optimization via EWWW. Automatically converts and delivers your images in WebP\u002FAVIF, resizes on the fly, and serves them from a global CDN—zero server configuration required.\u003C\u002Fp>\n\u003Cp>🤖 \u003Cstrong>AI Features (Module)\u003C\u002Fstrong>\u003Cbr \u002F>\nOptional AI-powered tools. Upscale images via Claid.ai when your source is too small, or use the AI Assistant to analyze your sizes and recommend which to enable or disable based on your theme’s srcset needs.\u003C\u002Fp>\n\u003Ch3>🖼️ Retina Images\u003C\u002Fh3>\n\u003Cp>Your visitors expect sharp, crisp images. Perfect Images makes retina support effortless.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Smart Generation:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Automatic retina creation for all thumbnail sizes\u003C\u002Fli>\n\u003Cli>Multiple delivery methods (Responsive Images, PictureFill, Retina.js)\u003C\u002Fli>\n\u003Cli>Works with WordPress srcset natively\u003C\u002Fli>\n\u003Cli>Full-size retina support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Delivery Options:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Responsive Images: Modern, standard method\u003C\u002Fli>\n\u003Cli>PictureFill: Hybrid approach with fallbacks\u003C\u002Fli>\n\u003Cli>Retina.js: Client-side detection\u003C\u002Fli>\n\u003Cli>Choose what fits your theme best\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🎨 Modern Formats\u003C\u002Fh3>\n\u003Cp>WebP and AVIF offer dramatically better compression than JPEG\u002FPNG—up to 50% smaller files with the same visual quality.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What You Get:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Generate WebP or AVIF for any image size\u003C\u002Fli>\n\u003Cli>Automatic browser detection and fallbacks\u003C\u002Fli>\n\u003Cli>Works alongside your original images\u003C\u002Fli>\n\u003Cli>Enable for thumbnails or full-size\u003C\u002Fli>\n\u003Cli>Responsive Images delivery built-in\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🤖 AI Features\u003C\u002Fh3>\n\u003Cp>Perfect Images integrates with AI services to help you manage and optimize your images smarter.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>AI Assistant:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Analyzes your image sizes and recommends which to enable or disable\u003C\u002Fli>\n\u003Cli>Detects redundant retina sizes already covered by other thumbnails\u003C\u002Fli>\n\u003Cli>Understands srcset behavior—sizes don’t need to be pixel-perfect\u003C\u002Fli>\n\u003Cli>Requires \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fai-engine\u002F\" rel=\"ugc\">AI Engine\u003C\u002Fa> plugin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Upscaling (via Claid.ai):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Generate retina images without 2x source files\u003C\u002Fli>\n\u003Cli>Create thumbnails larger than the original image\u003C\u002Fli>\n\u003Cli>Multiple upscaling modes (Smart Enhance, Digital Art, Photo, etc.)\u003C\u002Fli>\n\u003Cli>Automatic or manual processing\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>⚙️ Image Tools\u003C\u002Fh3>\n\u003Cp>The Image Tools dashboard lets you manage all your media in one place—regenerate thumbnails, build retina images, generate WebP\u002FAVIF, and more, individually or in bulk.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Regenerate Thumbnails:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Bulk regenerate all thumbnails\u003C\u002Fli>\n\u003Cli>Progress tracking for large libraries\u003C\u002Fli>\n\u003Cli>Preserves custom crops\u003C\u002Fli>\n\u003Cli>Updates retina and WebP versions automatically\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Replace Images:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Swap images directly from Media Library\u003C\u002Fli>\n\u003Cli>Drag & drop replacement in dashboard\u003C\u002Fli>\n\u003Cli>Maintains all metadata and links\u003C\u002Fli>\n\u003Cli>Updates all thumbnails instantly\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Manage Sizes:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>View all registered image sizes\u003C\u002Fli>\n\u003Cli>Disable unwanted sizes (medium_large, 1536×1536, etc.)\u003C\u002Fli>\n\u003Cli>Create custom sizes\u003C\u002Fli>\n\u003Cli>Track which sizes are enabled per image\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Disable Image Threshold:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Stop WordPress from creating “-scaled” versions\u003C\u002Fli>\n\u003Cli>Keep your original full-size images intact\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Pro Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Full-size retina images\u003C\u002Fli>\n\u003Cli>Full-size WebP\u002FAVIF conversion\u003C\u002Fli>\n\u003Cli>Priority support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Why Perfect Images?\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Essential Foundation\u003C\u002Fstrong>\u003Cbr \u002F>\nEvery WordPress site needs proper image size management and thumbnail control. Perfect Images makes it simple, giving you the baseline image handling WordPress should have included.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Modular & Lightweight\u003C\u002Fstrong>\u003Cbr \u002F>\nStart with just image size management and thumbnail regeneration. Enable retina, WebP, Easy IO, or AI modules only when you need them. No bloat, no unnecessary features.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Works with Everything\u003C\u002Fstrong>\u003Cbr \u002F>\nCompatible with WooCommerce, page builders, galleries, and any theme. It uses WordPress’s native image handling, so there are no conflicts.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>No Database Bloat\u003C\u002Fstrong>\u003Cbr \u002F>\nEverything works through WordPress’s existing metadata structure. No custom tables, no performance overhead.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Built for Real Workflows\u003C\u002Fstrong>\u003Cbr \u002F>\nDeveloped by someone who manages dozens of WordPress sites. Every feature solves a real problem we’ve encountered over years of WordPress development.\u003C\u002Fp>\n","Optimize image sizes, regenerate thumbnails, enable retina, convert to WebP\u002FAVIF, or use cloud optimization. An essential image toolkit.",60000,5891899,96,278,"2026-03-10T02:27:00.000Z","6.9.4","6.0","7.4",[93,94,24,95,96],"avif","regenerate","thumbnails","webp","https:\u002F\u002Fmeowapps.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-retina-2x.7.1.4.zip",99,3,"2023-11-28 00:00:00",{"slug":103,"name":104,"version":105,"author":106,"author_profile":107,"description":108,"short_description":109,"active_installs":110,"downloaded":111,"rating":50,"num_ratings":112,"last_updated":113,"tested_up_to":89,"requires_at_least":114,"requires_php":115,"tags":116,"homepage":119,"download_link":120,"security_score":50,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"better-image-sizes","Better image sizes","3.9","kubiq","https:\u002F\u002Fprofiles.wordpress.org\u002Fkubiq\u002F","\u003Cp>This plugin is ment mostly for developers. You need to use its functions in your theme or plugin to make it works.\u003C\u002Fp>\n\u003Cp>This plugin offers functionality like \u003Cstrong>face detection crop\u003C\u002Fstrong>, \u003Cstrong>focal point selector\u003C\u002Fstrong> for every image, \u003Cstrong>function to output responsive \u003Cpicture> sizes\u003C\u002Fstrong> and more.\u003C\u002Fp>\n\u003Ch3>Why to use this plugin?\u003C\u002Fh3>\n\u003Cp>WordPress will automatically create a lot of smaller images for every uploaded image.\u003Cbr \u002F>\nYou mostly need just 1 or 2 of them, so this is a waste of your server space and resources.\u003Cbr \u002F>\nAlso cropped images are generated from the center by default, which can be a problem many times.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>This plugin allows you to:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>disable autogenerated image sizes\u003C\u002Fli>\n\u003Cli>dynamically generate only needed image sizes for only needed images\u003C\u002Fli>\n\u003Cli>delete generated image sizes from this plugin individually or all together\u003C\u002Fli>\n\u003Cli>specify different focal point that will be in the focus while creating cropped versions of the image\u003C\u002Fli>\n\u003Cli>automatically detect focal point by face detection algorithm\u003C\u002Fli>\n\u003Cli>disable big image size threshold, so image bigger than 2560x2560px will be NOT scaled down\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How it works\u003C\u002Fh3>\n\u003Col>\n\u003Cli>if you disable existing autogenerated image sizes, then newly uploaded images will not create its sizes\u003C\u002Fli>\n\u003Cli>you need to specify in your code what size is needed for the image\u003C\u002Fli>\n\u003Cli>image is dynamically created on the first visit of the page and is stored in \u003Ccode>uploads\u003C\u002Fcode> folder\u003C\u002Fli>\n\u003Cli>every next visit of that page will just load already generated image\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Functions\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>bis_get_attachment_image_src( $attachment_id, $size, $crop )\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Function inspired by default \u003Ccode>wp_get_attachment_image_src\u003C\u002Fcode>.\u003Cbr \u002F>\nIf you used \u003Cem>Fly Dynamic Image Resizer\u003C\u002Fem> before, you don’t need to replace \u003Ccode>fly_get_attachment_image_src\u003C\u002Fcode> functions in your code – there is a fallback, so you can deactivate \u003Cem>Fly Dynamic Image Resizer\u003C\u002Fem> and it will still work.\u003C\u002Fp>\n\u003Cp>Parameters:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>attachment_id\u003C\u002Fstrong> (integer)(required)\u003Cbr \u002F>\nThe ID of the image attachment\u003Cbr \u002F>\nExample: \u003Ccode>123\u003C\u002Fcode> or \u003Ccode>get_post_thumbnail_id()\u003C\u002Fcode> or \u003Ccode>get_field('my_image')\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>size\u003C\u002Fstrong> (array)(required)\u003Cbr \u002F>\nAn array with the width and height\u003Cbr \u002F>\nExample: \u003Ccode>[ 1920, 1080 ]\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>crop\u003C\u002Fstrong> (boolean\u002Finteger\u002Farray\u002Fstring)(optional)\u003Cbr \u002F>\nSkip this or pass \u003Ccode>false\u003C\u002Fcode> or \u003Ccode>0\u003C\u002Fcode> if you don’t want to crop, just rescale,\u003Cbr \u002F>\notherwise pass \u003Ccode>true\u003C\u002Fcode> or \u003Ccode>1\u003C\u002Fcode> to use focal point crop that is selected in admin media (by default center),\u003Cbr \u002F>\nor pass array with string x-axis and y-axis parameters like \u003Ccode>[ 'right', 'bottom' ]\u003C\u002Fcode>\u003Cbr \u002F>\nor pass array with numeric x-axis and y-axis parameters like \u003Ccode>[ 0.5, 0.8 ]\u003C\u002Fcode>\u003Cbr \u002F>\nor pass string \u003Ccode>'face'\u003C\u002Fcode> to automatically detect face position (can be exhaustive on server resources)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Returns:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>array(\n    'src' => (string) url of the image,\n    'width' => (integer) width in pixels,\n    'height' => (integer) height in pixels\n)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Cp>\u003Cstrong>bis_get_attachment_image( $attachment_id, $size, $crop, $attr )\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Function inspired by default \u003Ccode>wp_get_attachment_image\u003C\u002Fcode>.\u003Cbr \u002F>\nIf you used \u003Cem>Fly Dynamic Image Resizer\u003C\u002Fem> before, you don’t need to replace \u003Ccode>fly_get_attachment_image\u003C\u002Fcode> functions in your code – there is a fallback, so you can deactivate \u003Cem>Fly Dynamic Image Resizer\u003C\u002Fem> and it will still work.\u003C\u002Fp>\n\u003Cp>Parameters:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>attachment_id\u003C\u002Fstrong> (integer)(required)\u003Cbr \u002F>\nThe ID of the image attachment\u003Cbr \u002F>\nExample: \u003Ccode>123\u003C\u002Fcode> or \u003Ccode>get_post_thumbnail_id()\u003C\u002Fcode> or \u003Ccode>get_field('my_image')\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>size\u003C\u002Fstrong> (array)(required)\u003Cbr \u002F>\nAn array with the width and height\u003Cbr \u002F>\nExample: \u003Ccode>[ 1920, 1080 ]\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>crop\u003C\u002Fstrong> (boolean\u002Finteger\u002Farray\u002Fstring)(optional)\u003Cbr \u002F>\nSkip this or pass \u003Ccode>false\u003C\u002Fcode> or \u003Ccode>0\u003C\u002Fcode> if you don’t want to crop, just rescale,\u003Cbr \u002F>\notherwise pass \u003Ccode>true\u003C\u002Fcode> or \u003Ccode>1\u003C\u002Fcode> to use focal point crop that is selected in admin media (by default center),\u003Cbr \u002F>\nor pass array with string x-axis and y-axis parameters like \u003Ccode>[ 'right', 'bottom' ]\u003C\u002Fcode>\u003Cbr \u002F>\nor pass array with numeric x-axis and y-axis parameters like \u003Ccode>[ 0.5, 0.8 ]\u003C\u002Fcode>\u003Cbr \u002F>\nor pass string \u003Ccode>'face'\u003C\u002Fcode> to automatically detect face position (can be exhaustive on server resources)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>attr\u003C\u002Fstrong> (array)(optional)\u003Cbr \u002F>\nAn array of attributes\u003Cbr \u002F>\nSpecial attribute \u003Ccode>retina\u003C\u002Fcode> allows you to automatically generate srcset for \u003Ccode>@2x\u003C\u002Fcode> retina devices\u003Cbr \u002F>\nExample: \u003Ccode>array( 'retina' => true, 'alt' => 'Custom alt text', 'class' => 'my-class', 'id' => 'my-id' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Returns:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cimg src=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F1234\u002Fyour-image-500x500-f50_50.jpg\" width=\"500\" height=\"500\" alt=\"Alt text\">\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Cp>\u003Cstrong>bis_get_attachment_picture( $attachment_id, $sizes, $attr )\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Parameters:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>attachment_id\u003C\u002Fstrong> (integer)(required)\u003Cbr \u002F>\nThe ID of the image attachment\u003Cbr \u002F>\nExample: \u003Ccode>123\u003C\u002Fcode> or \u003Ccode>get_post_thumbnail_id()\u003C\u002Fcode> or \u003Ccode>get_field('my_image')\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>sizes\u003C\u002Fstrong> (array)(required)\u003Cbr \u002F>\nAn array with the \u003Ccode>key => value\u003C\u002Fcode> pair\u003Cbr \u002F>\nwhere \u003Ccode>key\u003C\u002Fcode> means \u003Cstrong>breakpoint\u003C\u002Fstrong>\u003Cbr \u002F>\nand \u003Ccode>value\u003C\u002Fcode> is array of \u003Cstrong>width, height, crop and alternative_attachment_id\u003C\u002Fstrong>\u003Cbr \u002F>\nExample: \u003Ccode>[ 767 => [ 767, 400, 1, 987 ], 9999 => [ 1200, 500, 1 ] ]\u003C\u002Fcode>\u003Cbr \u002F>\nThis will generate \u003Ccode>\u003Csource media=\"(max-width:767px)\" srcset=\"image987_767x400.jpg\">\u003C\u002Fcode>\u003Cbr \u002F>\nand \u003Ccode>\u003Csource media=\"(max-width:9999px)\" srcset=\"image_1200x500.jpg\">\u003C\u002Fcode>\u003Cbr \u002F>\nand \u003Ccode>\u003Csource media=\"(min-width:10000px)\" srcset=\"image.jpg\">\u003C\u002Fcode>\u003Cbr \u002F>\nIf you will provide also key \u003Ccode>0\u003C\u002Fcode> then it will replace \u003Ccode>\u003Cimg>\u003C\u002Fcode>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>attr\u003C\u002Fstrong> (array)(optional)\u003Cbr \u002F>\nAn array of attributes\u003Cbr \u002F>\nSpecial attribute \u003Ccode>retina\u003C\u002Fcode> allows you to automatically generate srcset for \u003Ccode>@2x\u003C\u002Fcode> retina devices\u003Cbr \u002F>\nExample: \u003Ccode>array( 'retina' => true, 'alt' => 'Custom alt text', 'class' => 'my-class', 'id' => 'my-id' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example:\u003Cbr \u002F>\nTo generate perfect fullwidth hero image, that will looks great on 4K devices and also on small phones, but it will load only needed size, you can use:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>echo bis_get_attachment_picture(\n    get_post_thumbnail_id(),\n    [\n        375 => [ 375, 500, 1, 987 ],\n        575 => [ 575, 500, 1, 987 ],\n        767 => [ 767, 500, 1, 987 ],\n        991 => [ 991, 500, 1 ],\n        1199 => [ 1199, 500, 1 ],\n        1399 => [ 1399, 500, 1 ],\n        1600 => [ 1600, 500, 1 ],\n        1920 => [ 1920, 500, 1 ],\n        2560 => [ 2560, 500, 1 ],\n        3440 => [ 3440, 500, 1 ],\n        3840 => [ 3840, 500, 1 ],\n    ]\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Returns:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cpicture>\n    \u003Csource media=\"(max-width:375px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F987\u002Fyour-image-375x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:575px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F987\u002Fyour-image-575x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:767px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F987\u002Fyour-image-767x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:991px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-991x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:1199px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-1199x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:1399px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-1399x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:1600px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-1600x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:1920px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-1920x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:2560px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-2560x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:3440px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-3440x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:3840px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-3840x500-f50_50.jpg\">\n    \u003Csource media=\"(min-width:3841px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002F2022\u002F11\u002Fyour-image.jpg\">\n    \u003Cimg width=\"4000\" height=\"2000\" src=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002F2022\u002F11\u002Fyour-image.jpg\" alt=\"Some alt\" loading=\"lazy\">\n\u003C\u002Fpicture>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Ch3>There is no fallback for \u003Ccode>fly_add_image_size\u003C\u002Fcode> function\u003C\u002Fh3>\n\u003Cp>If you used \u003Cem>Fly Dynamic Image Resizer\u003C\u002Fem> before, you need to remove \u003Ccode>fly_add_image_size\u003C\u002Fcode> functions from your code.\u003Cbr \u002F>\nYou can create your own variables for sizes if you need it, like\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define( 'MY_CUSTOM_SIZE', [ 1000, 200 ] );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>and then just us it inside functions, like:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>echo bis_get_attachment_image( get_post_thumbnail_id(), MY_CUSTOM_SIZE );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Ch3>Support other extensions than JPG, PNG and WEBP\u003C\u002Fh3>\n\u003Cp>This plugin works by default only with JPG, PNG and WEBP files,\u003Cbr \u002F>\nbut you can easily allow any other mime types,\u003Cbr \u002F>\njust use this code eg. in \u003Ccode>wp-config.php\u003C\u002Fcode> or in your \u003Ccode>functions.php\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define( 'BIS_ALLOWED_MIME_TYPES', array( 'image\u002Fjpeg', 'image\u002Fpng', 'any_other\u002Fmime_type' ) );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Ch3>Get selected image focal point\u003C\u002Fh3>\n\u003Cp>Focal point data are stored in the attachement post metas.\u003Cbr \u002F>\nThere is also custom sanitize function, that you can use.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$focal_point = sanitize_focal_point( get_post_meta( get_post_thumbnail_id(), 'focal_point', true ) );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Returns:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>array( 0.5, 0.8 )\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>which means that focal point is 50% from left and 80% from top\u003C\u002Fp>\n","Dynamically generate only needed image sizes for only needed images, with manually selected focal point for crops",2000,22380,5,"2025-12-01T23:18:00.000Z","3.0.1","5.6",[74,117,118,24,95],"optimize","responsive","https:\u002F\u002Fwp-speedup.eu","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbetter-image-sizes.3.9.zip",{"slug":122,"name":123,"version":124,"author":125,"author_profile":126,"description":127,"short_description":128,"active_installs":11,"downloaded":129,"rating":50,"num_ratings":112,"last_updated":130,"tested_up_to":131,"requires_at_least":132,"requires_php":133,"tags":134,"homepage":139,"download_link":140,"security_score":141,"vuln_count":100,"unpatched_count":142,"last_vuln_date":143,"fetched_at":30},"stagtools","StagTools","2.3.8","Ram Ratan Maurya","https:\u002F\u002Fprofiles.wordpress.org\u002Fmauryaratan\u002F","\u003Cp>StagTools powers your WordPress website with some regularly needed shortcodes including buttons, columns, alerts, font icons etc. It also includes several widgets and editor styles.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Shortcodes:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Buttons ( optionally, with font icons )\u003C\u002Fli>\n\u003Cli>Columns\u003C\u002Fli>\n\u003Cli>Dropcaps\u003C\u002Fli>\n\u003Cli>Tabs\u003C\u002Fli>\n\u003Cli>Toggle\u003C\u002Fli>\n\u003Cli>Font Icons by \u003Ca href=\"http:\u002F\u002Ffortawesome.github.io\u002FFont-Awesome\u002F\" rel=\"nofollow ugc\">Font Awesome\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Google Maps with 5 predefined styles, and map types\u003C\u002Fli>\n\u003Cli>Custom Sidebars Area ( requires \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstag-custom-sidebars\u002F\" rel=\"ugc\">Stag Custom Sidebars\u003C\u002Fa> plugin )\u003C\u002Fli>\n\u003Cli>Image with CSS3 filters\u003C\u002Fli>\n\u003Cli>Videos ( supports \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FEmbeds#Okay.2C_So_What_Sites_Can_I_Embed_From.3F\" rel=\"nofollow ugc\">oEmbeds\u003C\u002Fa> )\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Widgets:\u003C\u002Fstrong> Twitter, Dribbble, Flickr\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Custom Post Types:\u003C\u002Fstrong> Portfolio, Slides, Team, Testimonials\u003C\u002Fp>\n\u003Ch4>Get Involved\u003C\u002Fh4>\n\u003Cp>If you are a developer, you can contribute to the source code on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmauryaratan\u002Fstagtools\" rel=\"nofollow ugc\">StagTools Github Repository\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cem>Checkout our finely tuned WordPress themes over at \u003Ca href=\"https:\u002F\u002Fcodestag.com?ref=WordPress\" rel=\"nofollow ugc\">Codestag\u003C\u002Fa>.\u003C\u002Fem>\u003C\u002Fp>\n","StagTools is a powerful plugin to extend functionality to your WordPress themes offering shortcodes, FontAwesome icons and useful widgets.",121298,"2023-08-04T07:33:00.000Z","6.2.9","5.0","7.3",[135,24,136,137,138],"icons","shortcodes","themeforest","widget","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fstagtools\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fstagtools.2.3.8.zip",60,1,"2025-09-05 00:00:00",{"attackSurface":145,"codeSignals":172,"taintFlows":179,"riskAssessment":180,"analyzedAt":187},{"hooks":146,"ajaxHandlers":168,"restRoutes":169,"shortcodes":170,"cronEvents":171,"entryPointCount":28,"unprotectedCount":28},[147,153,156,160,163,166],{"type":148,"name":149,"callback":149,"priority":150,"file":151,"line":152},"action","after_setup_theme",999,"simple-wp-retina.php",24,{"type":148,"name":154,"callback":154,"file":151,"line":155},"wp_footer",25,{"type":157,"name":158,"callback":158,"file":151,"line":159},"filter","the_content",26,{"type":157,"name":161,"callback":161,"priority":150,"file":151,"line":162},"post_thumbnail_size",27,{"type":157,"name":164,"callback":164,"priority":150,"file":151,"line":165},"post_thumbnail_html",28,{"type":157,"name":167,"callback":167,"priority":150,"file":151,"line":36},"post_gallery",[],[],[],[],{"dangerousFunctions":173,"sqlUsage":174,"outputEscaping":176,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":178},[],{"prepared":28,"raw":28,"locations":175},[],{"escaped":34,"rawEcho":28,"locations":177},[],[],[],{"summary":181,"deductions":182},"The static analysis of simple-wp-retina v1.1.1 reveals a generally strong security posture. The plugin exhibits good practices by having no identified dangerous functions, all SQL queries using prepared statements, and all output being properly escaped. Furthermore, the absence of file operations and external HTTP requests simplifies the attack surface. The lack of identified taint flows with unsanitized paths is also a positive indicator.\n\nHowever, there are some areas for improvement. The complete absence of nonce checks and capability checks across all entry points, though the current attack surface is zero, could become a concern if new functionalities are added without these crucial security measures. The plugin's vulnerability history is clean, with no known CVEs, which suggests a history of secure development. This, combined with the current static analysis results, points to a plugin that has been developed with security in mind, but the lack of checks in place is a potential weakness that could be exploited if the plugin evolves.",[183,185],{"reason":184,"points":48},"Missing capability checks",{"reason":186,"points":48},"Missing nonce checks","2026-03-16T19:03:38.245Z",{"wat":189,"direct":194},{"assetPaths":190,"generatorPatterns":191,"scriptPaths":192,"versionParams":193},[],[],[],[],{"cssClasses":195,"htmlComments":201,"htmlAttributes":202,"restEndpoints":204,"jsGlobals":205,"shortcodeOutput":206},[196,197,198,199,200],"size-medium@2x","size-large@2x","size-thumbnail@2x","wp-image-","attachment-thumbnail@2x",[],[203],"data-devicepixelratio",[],[],[],{"slug":4,"current_version":6,"total_versions":100,"versions":208},[209,216,223],{"version":6,"download_url":26,"svn_tag_url":210,"released_at":29,"has_diff":211,"diff_files_changed":212,"diff_lines":29,"trac_diff_url":213,"vulnerabilities":214,"is_current":215},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fsimple-wp-retina\u002Ftags\u002F1.1.1\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fsimple-wp-retina%2Ftags%2F1.1&new_path=%2Fsimple-wp-retina%2Ftags%2F1.1.1",[],true,{"version":217,"download_url":218,"svn_tag_url":219,"released_at":29,"has_diff":211,"diff_files_changed":220,"diff_lines":29,"trac_diff_url":221,"vulnerabilities":222,"is_current":211},"1.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-wp-retina.1.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fsimple-wp-retina\u002Ftags\u002F1.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fsimple-wp-retina%2Ftags%2F1.0&new_path=%2Fsimple-wp-retina%2Ftags%2F1.1",[],{"version":224,"download_url":225,"svn_tag_url":226,"released_at":29,"has_diff":211,"diff_files_changed":227,"diff_lines":29,"trac_diff_url":29,"vulnerabilities":228,"is_current":211},"1.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-wp-retina.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fsimple-wp-retina\u002Ftags\u002F1.0\u002F",[],[]]