[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fU_SSFB0Xi8F4TVXIcjD6EeKTdHvun7xVhJoAwVlR854":3},{"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":18,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":38,"analysis":77,"fingerprints":169},"just-responsive-images","Just Responsive Images","1.6.7","Alex Prokopenko \u002F JustCoded","https:\u002F\u002Fprofiles.wordpress.org\u002Faprokopenko\u002F","\u003Cp>The Just Responsive Images plugin gives you control of responsive image properties, which WordPress 4.4+ inserts to all post thumbnails by default.\u003C\u002Fp>\n\u003Cp>The default solution is to insert all available image sizes as srcset attribute into img tag. This is not optimal, because the browser gets too much image resolutions, it can generate more requests to the server (to get the right image) and it takes longer to display the image itself. Not to mention, Google Page Speed inspector is not satisfied with such a method.\u003C\u002Fp>\n\u003Cp>If you have hand-coded a mobile-friendly HTML\u002FCSS for your theme it usually has media queries for background images and \u003Cpicture> tags instead of \u003Cimg> tags. A lot of images are used as block backgrounds very often, which should be editable from CMS. All these best practices are not supported in the WordPress core by default and you end up wasting your time re-writing standard functions.\u003C\u002Fp>\n\u003Cp>That’s why we’re here! We want to provide easy-to-use control for customizing srcset for each image size dimension you use inside your theme. Also we’re happy to provide you with a few helpers which will generate tags and generate required media queries for backgrounds.\u003C\u002Fp>\n\u003Cp>Full documentation and configuration options are available on our github page:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjustcoded\u002Fjust-responsive-images\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fjustcoded\u002Fjust-responsive-images\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Feel free to post your suggestions or bugs under Issues section on github.\u003C\u002Fp>\n\u003Ch4>Generating image sizes on request\u003C\u002Fh4>\n\u003Cp>This plugin DOES NOT register image sizes with WordPress \u003Ccode>add_image_size\u003C\u002Fcode> function. So they are not resized on upload in admin panel. This is done because on big sites there are too much image sizes (especially with enabled retina option) and in this case WordPress wastes the disk space and database with useless files.\u003C\u002Fp>\n\u003Cp>Our plugin resize images ONLY when you open the page with an image, printed with rwd functions. Resize is performed through WordPress built in functions, so once resized – WordPress will have information about new sizes available for your image. \u003Cstrong>Unfortunately it’s impact the site speed, when you load the page with images by a first time.\u003C\u002Fstrong> Any good copywriter\u002Fadministrator checks his content before publishing, so this delay will be seen by admin users in most cases.\u003C\u002Fp>\n\u003Ch4>IMPORTANT\u003C\u002Fh4>\n\u003Cp>In version 1.2 default RWD set background options updated to mobile-first strategy (from desktop-first).\u003Cbr \u002F>\nIf you use nested rules from RWD set you should update your main size background option to have @media query with \u003Ccode>min-width\u003C\u002Fcode> rule.\u003C\u002Fp>\n\u003Ch4>DEV Mode\u003C\u002Fh4>\n\u003Cp>In DEV mode plugin does not resize any images and simply use placeholder images. This can be used to reduce disk space, while you develop and configure our plugin to match all required screen sizes.\u003C\u002Fp>\n\u003Cp>To enable it you need to define new constant in your wp-config.php file:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define( 'JRI_DUMMY_IMAGE', true );\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Providing full control to set your own responsive image properties for WP 4.4+, the ability to use the \u003Cpicture> tag and image backgrounds.",500,14626,88,7,"2021-09-06T13:20:00.000Z","5.8.13","4.5","",[20,21,22,23,24],"post-thumbnail-as-background","responsive-post-thumbnail","retina-image","retina-post-thumbnail","retina-support","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjust-responsive-images.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":35,"avg_patch_time_days":36,"trust_score":35,"computed_at":37},"aprokopenko",5,2540,79,30,"2026-04-04T15:22:55.360Z",[39,61],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":49,"num_ratings":14,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":18,"tags":53,"homepage":59,"download_link":60,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"picturefillwp","Picturefill.WP","1.3.5","kylereicks","https:\u002F\u002Fprofiles.wordpress.org\u002Fkylereicks\u002F","\u003Cp>\u003Cstrong>Note: This is an implementation of \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fscottjehl\u002Fpicturefill\u002Ftree\u002F1.2\" rel=\"nofollow ugc\">Picturefill.js version 1.2.x\u003C\u002Fa>. For an implementation of \u003Ca href=\"http:\u002F\u002Fscottjehl.github.io\u002Fpicturefill\u002F\" rel=\"nofollow ugc\">Picturefill.js 2.x\u003C\u002Fa>, see the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkylereicks\u002Fpicturefill.js.wp\u002Ftree\u002Fmaster\" rel=\"nofollow ugc\">master branch of the GitHub repository\u003C\u002Fa>.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Picturefill.WP is a simple and option-less plugin to serve HDPI and responsive images on a WordPress website.\u003C\u002Fp>\n\u003Cp>This plugin parses post and page content replacing images with a special syntax similar to the proposed syntax for the HTML5 \u003Ccode>picture\u003C\u002Fcode> element, then uses an adapted version of \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fscottjehl\u002Fpicturefill\" rel=\"nofollow ugc\">picturefill.js\u003C\u002Fa> to load the appropriate image to the browser.\u003C\u002Fp>\n\u003Ch3>Considerations before installing\u003C\u002Fh3>\n\u003Ch4>Slow Loading on Activation\u003C\u002Fh4>\n\u003Cp>The first time a page or post is loaded after activating Picturefill.WP, new \u003Ccode>@2x\u003C\u002Fcode> size images will need to be created for the images in the post or page content. This can take several seconds and will take longer on image heavy posts. Once these images are created, posts should load at least as fast or faster than they do without the plugin.\u003C\u002Fp>\n\u003Cp>If you are installing Picturefill.WP on a large and image heavy site, you may want to consider using another plugin like \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fregenerate-thumbnails\u002F\" rel=\"ugc\">Regenerate Thumbnails\u003C\u002Fa> to create the new image sizes for existing posts and pages.\u003C\u002Fp>\n\u003Ch4>500 or 504 server errors\u003C\u002Fh4>\n\u003Cp>These errors are related to the slow loading listed above. If the server reaches its timeout limit before it is finished processing new images, it will return a 500 or 504 error. Refreshing the page usually gives the server the time it needs to finish processing the images. On some image-heavy posts, it may take more than one refresh.\u003C\u002Fp>\n\u003Ch4>Image Sizes\u003C\u002Fh4>\n\u003Cp>By default, WordPress creates as many as 3 images of different sizes for each uploaded image (“large”, “medium”, and “thumbnail”), in addition to the “full” image size.\u003C\u002Fp>\n\u003Cp>This plugin adds responsive breakpoints based on the width of the image. The largest available image will display unless the browser width is less than the image width + 20px, in which case the next size down is displayed.\u003C\u002Fp>\n\u003Cp>To use this plugin most effectively, set the default image sizes (“large”, “medium”, and “thumbnail”) to reflect useful breakpoints in your theme design.\u003C\u002Fp>\n\u003Ch4>Errors and Warnings\u003C\u002Fh4>\n\u003Cp>As of version 1.3.3 Picturefill.WP suppresses errors and warnings in parsing the DOM. Errors and warnings can now be collected via the \u003Ccode>picturefill_wp_syntax_present_libxml_errors\u003C\u002Fcode> and \u003Ccode>picturefill_wp_get_images_libxml_errors\u003C\u002Fcode> filters.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter('picturefill_wp_get_images_libxml_errors', 'handle_errors');\n\nfunction handle_errors($errors){\n  foreach($errors as $error){\n    \u002F\u002F Handle errors here.\n  }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Theme CSS\u003C\u002Fh4>\n\u003Cp>As described in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpicturefillwp\u002Fother_notes\u002F\" rel=\"ugc\">Details section\u003C\u002Fa>, the picturefill.js syntax uses nested \u003Ccode>span\u003C\u002Fcode> elements. If a theme’s CSS applies styles to un-classed \u003Ccode>span\u003C\u002Fcode> elements, you may notice some of these \u003Ccode>span\u003C\u002Fcode>s showing up unexpectedly on the page after activating Picturefill.WP. If possible, it is best to remove the offending code from your theme files, but adding the flowing to the bottom of your theme’s CSS file should also work to reset these styles.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>span[data-picture]{display:inline;margin:0;padding:0;border:0;}\nspan[data-picture] span{display:inline;margin:0;padding:0;border:0;}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Caching\u003C\u002Fh4>\n\u003Cp>To improve performance, especially in image heavy posts, Picturefill.WP uses transient caching. The cache will be refreshed automatically every time a post is updated or Picturefill.WP is updated. The cache can be manually refreshed by deactivating and reactivating Picturefill.WP from the plugins menu.\u003C\u002Fp>\n\u003Cp>If you suspect that Picturefill.WP’s caching is causing trouble with another plugin or theme feature, first try deactivating and reactivating Picturefill.WP. If problems persist, try lowering the priority for Picturefill.WP to be executed by adding the following to your functions.php file:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>remove_filter('the_content', array(Picturefill_WP::get_instance(), 'apply_picturefill_wp_to_the_content'), 11);\nadd_filter('the_content', array(Picturefill_WP::get_instance(), 'cache_picturefill_output'), 9999);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>If you still encounter problems with other plugins or theme features, you may want to disable caching all together. See the subsection on how to disable caching under the “Extending Picturefill.WP” section of the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkylereicks\u002Fpicturefill.js.wp\" rel=\"nofollow ugc\">GitHub repository\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Details\u003C\u002Fh3>\n\u003Cp>Picturefill.WP looks through \u003Ccode>the_content\u003C\u002Fcode> to find \u003Ccode>\u003Cimg>\u003C\u002Fcode> elements like this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cimg class=\"alignnone size-large wp-image-123\" alt=\"Accessible alternate text for the image\" title=\"A title that displays on hover\" src=\"http:\u002F\u002Fsitename.com\u002Fwp-content\u002Fuploads\u002F2013\u002F4\u002Fimage-770x577.jpg\" width=\"770\" height=\"577\" \u002F>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>then replaces them with something like this (visit the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkylereicks\u002Fpicturefill.js.wp#details\" rel=\"nofollow ugc\">GitHub repository\u003C\u002Fa> for a breakdown of the syntax):\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cspan data-picture data-class=\"alignnone size-large wp-image-123\" dat-alt=\"Accessible alternate text for the image\" data-title=\"A title that displays on hover\" data-width=\"770\" data-height=\"577\">\n  \u003Cspan data-src=\"http:\u002F\u002Fsitename.com\u002Fwp-content\u002Fuploads\u002F2013\u002F4\u002Fimage-770x577.jpg\">\u003C\u002Fspan>\n  \u003Cspan data-src=\"http:\u002F\u002Fsitename.com\u002Fwp-content\u002Fuploads\u002F2013\u002F4\u002Fimage-150x150.jpg\" data-width=\"150\" data-height=\"150\" data-media=\"(min-width: 1px)\" class=\"picturefill-wp-source thumbnail\">\u003C\u002Fspan>\n  \u003Cspan data-src=\"http:\u002F\u002Fsitename.com\u002Fwp-content\u002Fuploads\u002F2013\u002F4\u002Fimage-300x300.jpg\" data-width=\"150\" data-height=\"150\" data-media=\"(min-width: 1px) and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 144dpi),(min-resolution: 1.5dppx)\" class=\"picturefill-wp-source retina thumbnail\">\u003C\u002Fspan>\n  \u003Cspan data-src=\"http:\u002F\u002Fsitename.com\u002Fwp-content\u002Fuploads\u002F2013\u002F4\u002Fimage-400x300.jpg\" data-width=\"400\" data-height=\"300\" data-media=\"(min-width: 420px)\" class=\"picturefill-wp-source medium\">\u003C\u002Fspan>\n  \u003Cspan data-src=\"http:\u002F\u002Fsitename.com\u002Fwp-content\u002Fuploads\u002F2013\u002F4\u002Fimage-800x600.jpg\" data-width=\"400\" data-height=\"300\" data-media=\"(min-width: 420px) and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 144dpi),(min-resolution: 1.5dppx)\" class=\"picturefill-wp-source retina medium\">\u003C\u002Fspan>\n  \u003Cspan data-src=\"http:\u002F\u002Fsitename.com\u002Fwp-content\u002Fuploads\u002F2013\u002F4\u002Fimage-770x577.jpg\" data-width=\"770\" data-height=\"577\" data-media=\"(min-width: 790px)\" class=\"picturefill-wp-source large\">\u003C\u002Fspan>\n  \u003Cspan data-src=\"http:\u002F\u002Fsitename.com\u002Fwp-content\u002Fuploads\u002F2013\u002F4\u002Fimage-1540x1155.jpg\" data-width=\"770\" data-height=\"577\" data-media=\"(min-width: 790px) and (-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 144dpi),(min-resolution: 1.5dppx)\" class=\"picturefill-wp-source retina large\">\u003C\u002Fspan>\n  \u003Cnoscript>\n    \u003Cimg class=\"alignnone size-large wp-image-123\" alt=\"Accessible alternate text for the image\" title=\"A title that displays on hover\" src=\"http:\u002F\u002Fsitename.com\u002Fwp-content\u002Fuploads\u002F2013\u002F4\u002Fimage-770x577.jpg\" width=\"770\" height=\"577\" \u002F>\n  \u003C\u002Fnoscript>\n\u003C\u002Fspan>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The adapted version of picturefill.js then looks for the last \u003Ccode>data-src\u003C\u002Fcode> listed where the associated \u003Ccode>data-media\u003C\u002Fcode> matches the device and browser, and loads the appropriate image inside the matched \u003Ccode>\u003Cspan>\u003C\u002Fcode> element.\u003C\u002Fp>\n\u003Ch3>Extending Picturefill.WP\u003C\u002Fh3>\n\u003Cp>See the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkylereicks\u002Fpicturefill.js.wp#extending-picturefillwp\" rel=\"nofollow ugc\">Extending Picturefill.WP\u003C\u002Fa> subsection of the GitHub repository for a list of plugin hooks and examples.\u003C\u002Fp>\n\u003Ch3>Advanced Use\u003C\u002Fh3>\n\u003Ch3>Markup Tricks\u003C\u002Fh3>\n\u003Ch4>Limit Responsiveness\u003C\u002Fh4>\n\u003Cp>The responsiveness of an image can be limited by adding the class \u003Ccode>min-size-{image size}\u003C\u002Fcode>. For example, an image with the class \u003Ccode>min-size-medium\u003C\u002Fcode> will not load an image smaller than size \u003Ccode>medium\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch4>Skip Images\u003C\u002Fh4>\n\u003Cp>To skip images and load them normally add the attribute \u003Ccode>data-picturefill-wp-ignore\u003C\u002Fcode> to the \u003Ccode>\u003Cimg>\u003C\u002Fcode> tag.\u003C\u002Fp>\n\u003Ch3>Helper Functions\u003C\u002Fh3>\n\u003Cp>See the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkylereicks\u002Fpicturefill.js.wp#helper-functions\" rel=\"nofollow ugc\">helper functions\u003C\u002Fa> section of the documentation on GitHub.\u003C\u002Fp>\n","A Wordpress plugin to use picturefill.js to load responsive\u002Fretina images, mimicking the proposed HTML5 picture spec.",50,9578,100,"2014-08-03T22:15:00.000Z","3.9.40","3.2",[54,55,56,57,58],"images","picturefill","responsive-images","retina","retina-images","http:\u002F\u002Fgithub.com\u002Fkylereicks\u002Fpicturefill.js.wp","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpicturefillwp.1.3.5.zip",{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":69,"downloaded":70,"rating":27,"num_ratings":27,"last_updated":71,"tested_up_to":72,"requires_at_least":73,"requires_php":18,"tags":74,"homepage":18,"download_link":76,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"wp-responsive-retina-images","Picture Element Responsive and Retina Images","1.0.0","christhewanderer","https:\u002F\u002Fprofiles.wordpress.org\u002Fchristhewanderer\u002F","\u003Cp>WordPress has introduced the srcset feature into core which is great but this plugin goes a step further to help theme developers use the picture element with a fallback to a standard image tag and srcset.\u003C\u002Fp>\n\u003Cp>This plugin also offers support for on the fly image generation plugins. In fact it’s hugely encouraged to use one as this plugin can cause image uploads to slow down otherwise.\u003C\u002Fp>\n\u003Cp>It also offers support for 2x and 3x images for retina screens so you can serve the best image possible for your visitors.\u003C\u002Fp>\n\u003Ch4>Define image sizes\u003C\u002Fh4>\n\u003Cp>First you need to define your image sizes, similar to add_image_size. This particular function is optional but recommended because it also creates 2x and 3x images for retina.\u003Cbr \u002F>\nE.G. \u003Ccode>add_image_size_for_picture('mobile_images', 320, 0, true);\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch4>Using images in your template\u003C\u002Fh4>\n\u003Cp>Once your sizes are defined you can call them in your template like so:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>generate_picture($some_attachment_id, [\n    'mobile_images' => '(max-width: 320px)'\n], [\n    'class' => 'some-class-name',\n    'data-item' => 1\n]);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The second argument array is in the format of \u003Ccode>image size name : media query\u003C\u002Fcode> that way you can specify as many different responsive sizes as you need to.\u003Cbr \u002F>\nThe third argument allows you to add attributes to the source\u002Fimg tag.\u003C\u002Fp>\n\u003Ch4>Integrating with on the fly image generation plugins\u003C\u002Fh4>\n\u003Cp>Adding upload sizes to wordpress and slow down the image upload significantly as we generate three times as many images that you add a size for. This can cause the upload to time out if you are using a server with a low amount of cpu cores.\u003C\u002Fp>\n\u003Cp>To solve this we recommend using a plugin that will create these images independent of the upload and not affect users. For this purpose we have three filters available for you to change the functions we call underneath the hood.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>responsive_retina_images_add_size_function is the function to call when adding a new size, by default this calls `add_image_size`\n'responsive_retina_images_source_function is the function to call when pulling the image from the database, by default this calls `wp_get_attachment_image_src`\nresponsive_retina_images_source_function_index is the index at which to access the url returned from `responsive_retina_images_source_function`, by default this is `0`\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>For example if you were to integrate with Fly Dynamic Image Resizer you could add the following to your functions.php.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter('responsive_retina_images_add_size_function', function() { return 'fly_add_image_size'; });\nadd_filter('responsive_retina_images_source_function', function() { return 'fly_get_attachment_image_src'; });\nadd_filter('responsive_retina_images_source_function_index', function() { return 'src'; });\n\u003C\u002Fcode>\u003C\u002Fpre>\n","A plugin that helps you generate a picture element for creating responsive images. Retina support is included out of the box.",10,1247,"2017-02-23T03:51:00.000Z","4.7.32","4.0.0",[75,56,58],"picture","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-responsive-retina-images.zip",{"attackSurface":78,"codeSignals":133,"taintFlows":157,"riskAssessment":158,"analyzedAt":168},{"hooks":79,"ajaxHandlers":129,"restRoutes":130,"shortcodes":131,"cronEvents":132,"entryPointCount":27,"unprotectedCount":27},[80,86,91,95,100,104,108,112,116,120,124],{"type":81,"name":82,"callback":83,"file":84,"line":85},"action","add_meta_boxes_attachment","add_meta_boxes","components\\MediaMetaInfo.php",21,{"type":81,"name":87,"callback":88,"file":89,"line":90},"after_setup_theme","after_theme_setup","components\\PostAttachment.php",25,{"type":81,"name":92,"callback":93,"file":89,"line":94},"wp_footer","rwd_print_styles",29,{"type":96,"name":97,"callback":98,"file":89,"line":99},"filter","the_content","make_content_images_responsive",39,{"type":96,"name":101,"callback":102,"priority":69,"file":89,"line":103},"wp_get_attachment_image_src","set_calculated_image_size_cache",43,{"type":96,"name":105,"callback":106,"priority":69,"file":89,"line":107},"wp_calculate_image_srcset","calculate_image_srcset",44,{"type":96,"name":109,"callback":110,"priority":69,"file":89,"line":111},"wp_calculate_image_sizes","calculate_image_sizes",45,{"type":96,"name":113,"callback":114,"file":89,"line":115},"jio_settings_image_sizes","add_jio_image_sizes",48,{"type":96,"name":117,"callback":118,"file":89,"line":119},"intermediate_image_sizes","force_register_rwd_image_sizes",54,{"type":96,"name":121,"callback":122,"priority":69,"file":89,"line":123},"wp_update_attachment_metadata","update_attachment_rwd_metadata",55,{"type":81,"name":125,"callback":126,"file":127,"line":128},"admin_menu","adminMenu","components\\UploadsCleanup.php",18,[],[],[],[],{"dangerousFunctions":134,"sqlUsage":135,"outputEscaping":137,"fileOperations":154,"externalRequests":27,"nonceChecks":155,"capabilityChecks":27,"bundledLibraries":156},[],{"prepared":27,"raw":27,"locations":136},[],{"escaped":138,"rawEcho":33,"locations":139},17,[140,144,147,149,151],{"file":141,"line":142,"context":143},"core\\Controller.php",53,"raw output",{"file":145,"line":146,"context":143},"just-rwd-functions.php",28,{"file":145,"line":148,"context":143},82,{"file":145,"line":150,"context":143},113,{"file":152,"line":153,"context":143},"views\\cleanup\\index.php",36,1,2,[],[],{"summary":159,"deductions":160},"The \"just-responsive-images\" v1.6.7 plugin exhibits a strong security posture based on the provided static analysis and vulnerability history.  The absence of AJAX handlers, REST API routes, shortcodes, and cron events significantly limits its attack surface.  Furthermore, the code demonstrates good practices with 100% of SQL queries using prepared statements and a reasonable rate of output escaping, suggesting a low risk of injection vulnerabilities or cross-site scripting (XSS) through its outputs. The plugin also includes nonce checks, which are crucial for preventing certain types of attacks.",[161,163,166],{"reason":162,"points":33},"Missing capability checks on entry points",{"reason":164,"points":165},"Output escaping is not fully comprehensive",3,{"reason":167,"points":155},"Single file operation detected","2026-03-16T19:35:21.719Z",{"wat":170,"direct":179},{"assetPaths":171,"generatorPatterns":174,"scriptPaths":175,"versionParams":176},[172,173],"\u002Fwp-content\u002Fplugins\u002Fjust-responsive-images\u002Fjust-rwd-functions.php","\u002Fwp-content\u002Fplugins\u002Fjust-responsive-images\u002Fdata\u002Frwd-sizes.php",[],[],[177,178],"just-responsive-images\u002Fstyle.css?ver=","just-responsive-images\u002Fjs\u002Fscript.js?ver=",{"cssClasses":180,"htmlComments":181,"htmlAttributes":182,"restEndpoints":184,"jsGlobals":185,"shortcodeOutput":188},[],[],[183],"wp-image-",[],[186,187],"rwd_image_sizes","rwd_image_options",[]]