[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fVf-4Kyka5YFi-g0hw4GAmTSvBi_fiDwkzwXWZlxFGqo":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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":17,"download_link":24,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":35,"analysis":137,"fingerprints":289},"crop-and-resize-images","Crop and Resize Images","1.2.4","bo.lipai","https:\u002F\u002Fprofiles.wordpress.org\u002Fbolipai\u002F","\u003Cp>With the help of this plugin you will be able to resize to any dimmension and\u003Cbr \u002F>\ncrop all images from your WordPress library.\u003C\u002Fp>\n\u003Cp>The plugin introduces a visual and very simple to use image editor. The croped\u003Cbr \u002F>\nimage will retain the aspect ratio define by WordPress so no more missing\u003Cbr \u002F>\nimportant parts from your images.\u003C\u002Fp>\n","Crop and Resize Images Plugin allows you to easily modify WordPress uploaded images.",80,6592,0,"2015-10-21T23:59:00.000Z","4.3.34","3.5","",[19,20,21,22,23],"crop","images","picture","resize","thumbnail","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcrop-and-resize-images.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},"bolipai",1,30,84,"2026-04-04T16:31:29.738Z",[36,54,76,97,116],{"slug":37,"name":38,"version":39,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":44,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":17,"tags":50,"homepage":52,"download_link":53,"security_score":44,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"presswell-art-direction","Presswell Art Direction","1.1.12","Presswell","https:\u002F\u002Fprofiles.wordpress.org\u002Fpresswell\u002F","\u003Cp>Presswell Art Direction helps simplify how custom image thumbnail sizes are defined, cropped, and generated.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Control image cropping with hot-spots\u003C\u002Fli>\n\u003Cli>Select custom image sizes in the WordPress editor\u003C\u002Fli>\n\u003Cli>Dynamically generate image thumbnails\u003C\u002Fli>\n\u003Cli>Delete all cached thumbnails\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>\u003Cem>Image Cropping\u003C\u002Fem>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Presswell Art Direction adds the ability to set a focal point hot-spot for all images in the media library for fine grain cropping control. Simply identify where the subject of the photo is and the plugin will crop all custom image thumbnails to ensure it stays in frame.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Cem>Thumbnail Sizes\u003C\u002Fem>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Presswell Art Direction adds an easy to use interface for defining and editing custom image thumbnail sizes. Custom image sizes will be available for selection when inserting images in the post editor.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Cem>Dynamic Images\u003C\u002Fem>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Presswell Art Direction prevents custom image sizes from being generated automatically. Only standard WordPress thumbnails will be generated when a new image is uploaded. All other image sizes will be dynamically generated when called via code or requested via URL, saving server space when many custom image sizes are defined. Note: URL based image generation requires that \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FUsing_Permalinks\" rel=\"nofollow ugc\">pretty permalinks\u003C\u002Fa> are enabled.\u003C\u002Fp>\n\u003Ch4>Documentation\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>pwad_add_image_size( $args )\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>$args\u003C\u002Fstrong> (array) (required) – Keyed array containing \u003Ccode>name\u003C\u002Fcode>, \u003Ccode>key\u003C\u002Fcode>, \u003Ccode>height\u003C\u002Fcode>, \u003Ccode>width\u003C\u002Fcode>, and optionally \u003Ccode>thumbnails\u003C\u002Fcode> values; Thumbnail keys are prefixed with parent’s key like ‘[size]-[thumbnail]’\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>pwad_add_image_size( array(\n  'name' => 'Square',\n  'key' => 'square',\n  'width' => '1200',\n  'height' => '1200',\n  'thumbnails' => array(\n    array(\n      'name' => 'Medium',\n      'key' => 'medium',\n      'width' => '800',\n      'height' => '800',\n    ),\n    array(\n      'name' => 'Small',\n      'key' => 'small',\n      'width' => '400',\n      'height' => '400',\n    ),\n  ),\n) );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>pwad_get_image( $attachment_ID, $size_key, $thumbnail_key )\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>$attachment_ID\u003C\u002Fstrong> (int) (required) – ID of image attachment\u003C\u002Fli>\n\u003Cli>\u003Cstrong>$size_key\u003C\u002Fstrong> (string) (required) – Image size identifier; Overload using ‘[size]-[thumbnail]’ pattern\u003C\u002Fli>\n\u003Cli>\u003Cstrong>$thumbnail_key\u003C\u002Fstrong> (string) (required) – Image size thumbnail identifier\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Returns an image tag.\u003C\u002Fp>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$square_large = pwad_get_image( $img_ID, 'square' );\n$square_medium = pwad_get_image( $img_ID, 'square', 'medium' );\n$square_small = pwad_get_image( $img_ID, 'square-small' ); \u002F\u002F Overloaded\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>pwad_get_image_src( $attachment_ID, $size_key, $thumbnail_key )\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>$attachment_ID\u003C\u002Fstrong> (int) (required) – ID of image attachment\u003C\u002Fli>\n\u003Cli>\u003Cstrong>$size_key\u003C\u002Fstrong> (string) (required) – Image size identifier; Overload using ‘[size]-[thumbnail]’ pattern\u003C\u002Fli>\n\u003Cli>\u003Cstrong>$thumbnail_key\u003C\u002Fstrong> (string) (required) – Image size thumbnail identifier\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Returns a keyed array containing the \u003Ccode>file\u003C\u002Fcode>, \u003Ccode>url\u003C\u002Fcode>, \u003Ccode>path\u003C\u002Fcode>, \u003Ccode>height\u003C\u002Fcode>, \u003Ccode>width\u003C\u002Fcode>, and \u003Ccode>mime-type\u003C\u002Fcode> values.\u003C\u002Fp>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$square_large = pwad_get_image_src( $img_ID, 'square' );\n$square_medium = pwad_get_image_src( $img_ID, 'square', 'medium' );\n$square_small = pwad_get_image_src( $img_ID, 'square-small' ); \u002F\u002F Overloaded\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Control how custom image thumbnail sizes are defined, cropped, and generated.",100,4571,2,"2025-11-10T20:29:00.000Z","6.4.8","4.0",[19,51,20,21,23],"image","http:\u002F\u002Fwordpress.org\u002Fplugins\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpresswell-art-direction.zip",{"slug":55,"name":56,"version":57,"author":58,"author_profile":59,"description":60,"short_description":61,"active_installs":62,"downloaded":63,"rating":64,"num_ratings":65,"last_updated":66,"tested_up_to":67,"requires_at_least":68,"requires_php":17,"tags":69,"homepage":74,"download_link":75,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"multi-image-metabox","Multi Image Metabox","1.3.5","Willy Bahuaud","https:\u002F\u002Fprofiles.wordpress.org\u002Fwillybahuaud\u002F","\u003Cp>This plugin add a metabox which allox to upload and link multiple images to one post.\u003Cbr \u002F>\nPictures are linked by the way of meta_value (and attachments ID). They can be reordered using drag and drop.\u003C\u002Fp>\n\u003Cp>Number of allowed pictures and concerned post types can be overited using hooks.\u003C\u002Fp>\n\u003Cp>Plugin includes many functions to retrieve linked pictures.\u003Cbr \u002F>\nFor more information on using the plugin, refer to the section \u003Ca href=\"\u002Fextend\u002Fplugins\u002Fmulti-image-metabox\u002Fother_notes\u002F\" rel=\"nofollow ugc\">“Other Notes”\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Set concerned post types\u003C\u002Fh3>\n\u003Cp>Paste this into your theme’s functions.php file :\n    \u003C\u002Fp>\n\u003Ch3>Set allowed number of picts\u003C\u002Fh3>\n\u003Cp>Paste this into your theme’s functions.php file :\u003Cbr \u002F>\n     ‘_image1’,\u003Cbr \u002F>\n                ‘image2’ => ‘_image2’,\u003Cbr \u002F>\n            );\u003Cbr \u002F>\n            return $picts;\u003Cbr \u002F>\n        }\u003Cbr \u002F>\n    ?>\u003C\u002Fp>\n\u003Ch4>Set allowed number of picts, depending to the post_type\u003C\u002Fh4>\n\u003Cp>Paste this into your theme’s functions.php file :\u003Cbr \u002F>\n    add_filter(‘list_images’,’my_list_images’,10,2);\u003Cbr \u002F>\n    function my_list_images($list_images, $cpt){\u003Cbr \u002F>\n        global $typenow;\u003Cbr \u002F>\n        if($typenow == “my_custom_post_type” || $cpt == “my_custom_post_type”)\u003Cbr \u002F>\n            $picts = array(\u003Cbr \u002F>\n                ‘image1’ => ‘_image1’,\u003Cbr \u002F>\n                ‘image2’ => ‘_image2’,\u003Cbr \u002F>\n                ‘image3’ => ‘_image3’,\u003Cbr \u002F>\n            );\u003Cbr \u002F>\n        else\u003Cbr \u002F>\n            $picts = array(\u003Cbr \u002F>\n                ‘image1’ => ‘_image1’,\u003Cbr \u002F>\n                ‘image2’ => ‘_image2’,\u003Cbr \u002F>\n                ‘image3’ => ‘_image3’,\u003Cbr \u002F>\n                ‘image4’ => ‘_image4’,\u003Cbr \u002F>\n                ‘image5’ => ‘_image5’,\u003Cbr \u002F>\n                ‘image6’ => ‘_image6’,\u003Cbr \u002F>\n                ‘image7’ => ‘_image7’,\u003Cbr \u002F>\n                ‘image8’ => ‘_image8’,\u003Cbr \u002F>\n            );\u003Cbr \u002F>\n        return $picts;\u003Cbr \u002F>\n    }\u003C\u002Fp>\n\u003Ch3>get_images_ids()\u003C\u002Fh3>\n\u003Cp>This function have to be used into a template file, or any function.\u003Cbr \u002F>\nIt return an array of the linked attachments’s ID.\u003C\u002Fp>\n\u003Cp>It take two arguments whose are :\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>include the thumbnail ?\u003C\u002Fstrong> (boolean) if true include the thumbnail in the returned datas\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>ID\u003C\u002Fstrong> (integer) for targeting images linked to a specific post\u003C\u002Fp>\n\u003Cp> 45,\u003Cbr \u002F>\n    ‘image1’ => 5,\u003Cbr \u002F>\n    ‘image2’ => 6,\u003Cbr \u002F>\n    ‘image3’ => 12,\u003Cbr \u002F>\n    ‘image6’ => 20,\u003Cbr \u002F>\n    ‘image7’ => 15\u003Cbr \u002F>\n);\u003C\u002Fp>\n\u003Cp>\u002F\u002FEmpty pictures ar not returned\u003C\u002Fp>\n\u003Cp>?>\u003C\u002Fp>\n\u003Ch3>get_images_src()\u003C\u002Fh3>\n\u003Cp>This function have to be used into a template file, or any function.\u003Cbr \u002F>\nIt return an array of URIs and dimension for the linked attachments’s, by order.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>It take three agruments whose are :\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>size\u003C\u002Fstrong> (string) the size to return\u003C\u002Fli>\n\u003Cli>\u003Cstrong>include the thumbnail ?\u003C\u002Fstrong> (boolean) if true include the thumbnail in the returned datas\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>ID\u003C\u002Fstrong> (integer) for targeting images linked to a specific post\u003C\u002Fp>\n\u003Cp> array(\u003Cbr \u002F>\n        [0] => ‘http:\u002F\u002Furl_of_the_medium_pict.jpg’,\u003Cbr \u002F>\n        [1] => 340,\u003Cbr \u002F>\n        [2] => 200,\u003Cbr \u002F>\n        [3] => false \u002F\u002FI’ve no idea what is it…\u003Cbr \u002F>\n    ),\u003Cbr \u002F>\n    ‘image2’ => array(\u003Cbr \u002F>\n        [0] => ‘http:\u002F\u002Furl_of_the_medium_second_pict.jpg’,\u003Cbr \u002F>\n        [1] => 340,\u003Cbr \u002F>\n        [2] => 200,\u003Cbr \u002F>\n        [3] => false \u002F\u002FI’ve no idea what is it…\u003Cbr \u002F>\n    )\u003Cbr \u002F>\n);\u003C\u002Fp>\n\u003Cp>?>\u003C\u002Fp>\n\u003Ch3>get_multi_images_src()\u003C\u002Fh3>\n\u003Cp>Same as get_image_src(), but return two sizes for all the pictures.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>It take for agruments whose are :\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>size\u003C\u002Fstrong> (string) the size to return\u003C\u002Fli>\n\u003Cli>\u003Cstrong>size2\u003C\u002Fstrong> (string) another size to return\u003C\u002Fli>\n\u003Cli>\u003Cstrong>include the thumbnail ?\u003C\u002Fstrong> (boolean) if true include the thumbnail in the returned datas\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>ID\u003C\u002Fstrong> (integer) for targeting images linked to a specific post\u003C\u002Fp>\n\u003Cp> array(\u003Cbr \u002F>\n        [0] => array(\u003Cbr \u002F>\n            [0] => ‘http:\u002F\u002Furl_of_the_medium_pict.jpg’,\u003Cbr \u002F>\n            [1] => 340,\u003Cbr \u002F>\n            [2] => 200,\u003Cbr \u002F>\n            [3] => false \u002F\u002FI’ve no idea what is it…\u003Cbr \u002F>\n        ),\u003Cbr \u002F>\n        [1] => array(\u003Cbr \u002F>\n            [0] => ‘http:\u002F\u002Furl_of_the_full_pict.jpg’,\u003Cbr \u002F>\n            [1] => 1020,\u003Cbr \u002F>\n            [2] => 600,\u003Cbr \u002F>\n            [3] => false \u002F\u002FI’ve no idea what is it…\u003Cbr \u002F>\n        ),\u003Cbr \u002F>\n    ),\u003Cbr \u002F>\n    ‘image2’ => array(\u003Cbr \u002F>\n        [0] => array(\u003Cbr \u002F>\n            [0] => ‘http:\u002F\u002Furl_of_the_medium_second_pict.jpg’,\u003Cbr \u002F>\n            [1] => 340,\u003Cbr \u002F>\n            [2] => 200,\u003Cbr \u002F>\n            [3] => false \u002F\u002FI’ve no idea what is it…\u003Cbr \u002F>\n        ),\u003Cbr \u002F>\n        [1] => array(\u003Cbr \u002F>\n            [0] => ‘http:\u002F\u002Furl_of_the_second_full_pict.jpg’,\u003Cbr \u002F>\n            [1] => 1020,\u003Cbr \u002F>\n            [2] => 600,\u003Cbr \u002F>\n            [3] => false \u002F\u002FI’ve no idea what is it…\u003Cbr \u002F>\n        )\u003Cbr \u002F>\n    )\u003Cbr \u002F>\n);\u003Cbr \u002F>\n\u002F\u002FEmpty pictures ar not returned\u003C\u002Fp>\n\u003Cp>?>\u003C\u002Fli>\n\u003C\u002Fol>\n","Add a multi-image metabox to your posts, pages and custom post types",7000,20181,98,11,"2017-11-28T19:40:00.000Z","3.5.2","3.0",[20,70,71,72,73],"metabox","multiple","multiple-post-thumbnail","pictures","http:\u002F\u002Fwabeo.fr","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmulti-image-metabox.zip",{"slug":77,"name":78,"version":79,"author":80,"author_profile":81,"description":82,"short_description":83,"active_installs":84,"downloaded":85,"rating":86,"num_ratings":46,"last_updated":87,"tested_up_to":88,"requires_at_least":89,"requires_php":17,"tags":90,"homepage":17,"download_link":95,"security_score":44,"vuln_count":31,"unpatched_count":13,"last_vuln_date":96,"fetched_at":27},"acme-fix-images","Acme Fix Images – Regenerate Thumbnails","2.0.4","Acme Themes","https:\u002F\u002Fprofiles.wordpress.org\u002Facmethemes\u002F","\u003Cp>Regenerate Thumbnails – Acme Fix Images is a handy WordPress plugin designed to resolve issues related to image thumbnail sizes. If you’ve recently adjusted image sizes in your Media Settings or encountered display problems due to improper thumbnail sizes, this plugin can help you ensure consistency and proper display of images across your website.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Log in to your WordPress admin panel.\u003C\u002Fli>\n\u003Cli>Navigate to Appearance => Acme Fix Images.\u003C\u002Fli>\n\u003Cli>Select the image sizes and options you wish to fix.\u003C\u002Fli>\n\u003Cli>Click “Fix All Images” to regenerate thumbnails according to your chosen sizes.\u003C\u002Fli>\n\u003C\u002Fol>\n","Fix image sizes after you have changed image sizes from Media Settings. Ensure your images display consistently across your website.",4000,97589,50,"2025-04-18T07:45:00.000Z","6.8.5","5.0",[91,92,93,94],"featured-images","image-crop","post-thumbnails","regenerate-thumbnails","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Facme-fix-images.2.0.4.zip","2023-11-15 00:00:00",{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":105,"downloaded":106,"rating":44,"num_ratings":107,"last_updated":108,"tested_up_to":109,"requires_at_least":16,"requires_php":17,"tags":110,"homepage":112,"download_link":113,"security_score":114,"vuln_count":31,"unpatched_count":31,"last_vuln_date":115,"fetched_at":27},"wp-thumb","WPThumb","0.10","Joe Hoyle","https:\u002F\u002Fprofiles.wordpress.org\u002Fjoehoyle\u002F","\u003Cp>WP Thumb is a simple plugin that seamlessly integrates with the WordPress image functions. You can specify height, width and crop values, and an image will be generated, which is then cached for future use.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Automatic images resizing, cropping and caching.\u003C\u002Fli>\n\u003Cli>Ideal for when you want to change the dimensions of default image sizes.\u003C\u002Fli>\n\u003Cli>Can extend using filters to make use of any of the phpThumb Library functions by manipulating the image object.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Contribution guidelines\u003C\u002Fh3>\n\u003Cp>see https:\u002F\u002Fgithub.com\u002Fhumanmade\u002FWPThumb\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md\u003C\u002Fp>\n","An on-demand image generation replacement for WordPress' image resizing.",900,37432,3,"2014-04-01T18:03:00.000Z","3.7.41",[19,51,111,22,23],"phpthumb","https:\u002F\u002Fgithub.com\u002Fhumanmade\u002FWPThumb","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-thumb.0.10.zip",63,"2025-06-19 00:00:00",{"slug":117,"name":118,"version":119,"author":120,"author_profile":121,"description":122,"short_description":123,"active_installs":124,"downloaded":125,"rating":126,"num_ratings":127,"last_updated":128,"tested_up_to":129,"requires_at_least":130,"requires_php":17,"tags":131,"homepage":134,"download_link":135,"security_score":114,"vuln_count":31,"unpatched_count":31,"last_vuln_date":136,"fetched_at":27},"thumbnail-editor","Thumbnail Editor","2.3.3","aviplugins.com","https:\u002F\u002Fprofiles.wordpress.org\u002Favimegladon\u002F","\u003Cp>When images are uploaded in the WordPress Media library section WordPress creates some thumbnails of that image. The size of these thumbnail images can be mentioned in the \u003Ccode>Settings->Media\u003C\u002Fcode> section.\u003C\u002Fp>\n\u003Cp>But there can be some big issues with these thumbnails. WordPress Crop\u002FResize these images dynamically when you upload an image. When thumbnails are CROPPED it is very much possible that it gets CROPPED from the wrong section of the uploaded image. This can produce some BAD looking thumbnail images. Which doesn’t look good in frontend of the site. This plugin will allow you to update those thumbnail images manually. The thumbnail image edit interface that this plugin provides is simple and very easy to use.\u003C\u002Fp>\n\u003Cp>The shortcodes and functions are provided in the image editor page of the plugin.\u003C\u002Fp>\n\u003Cp>Image editor links can be found in WordPress Media Library.\u003C\u002Fp>\n\u003Cp>Image files that can be edited are \u003Cstrong>JPG, JPEG, GIF and PNG\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>Thumbnail Editor PRO\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.aviplugins.com\u002Fthumbnail-editor-pro\u002F\" rel=\"nofollow ugc\">Checkout the PRO version features here\u003C\u002Fa>. PRO version costs only \u003Cstrong>USD 2.00\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Support for \u003Cstrong>Amazon S3 Bucket\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Completely replace thumbnail images and upload new ones.\u003C\u002Fli>\n\u003Cli>Add \u003Cstrong>Custom Texts\u003C\u002Fstrong> to thumbnail images. You can add signature in the images.\u003C\u002Fli>\n\u003Cli>Different Text \u003Cstrong>Fonts\u003C\u002Fstrong> are available to choose from.\u003C\u002Fli>\n\u003Cli>Add Image \u003Cstrong>Effects\u003C\u002Fstrong> like \u003Cstrong>Gray Scale, Sketch, Negative\u003C\u002Fstrong> or Add \u003Cstrong>Color Effects\u003C\u002Fstrong> to the Image.\u003C\u002Fli>\n\u003Cli>Add image \u003Cstrong>Borders\u003C\u002Fstrong> with different border colors.\u003C\u002Fli>\n\u003Cli>Option to \u003Cstrong>Revert Back\u003C\u002Fstrong> the changes you made in the image.\u003C\u002Fli>\n\u003C\u002Ful>\n","Manually Crop and Resize thumbnail images that are uploaded in the Media section.",600,24497,60,5,"2023-03-23T16:58:00.000Z","6.1.10","2.0.2",[19,20,132,133,23],"media","thumb","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fthumbnail-editor\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fthumbnail-editor.2.3.3.zip","2025-06-27 00:00:00",{"attackSurface":138,"codeSignals":190,"taintFlows":274,"riskAssessment":275,"analyzedAt":288},{"hooks":139,"ajaxHandlers":166,"restRoutes":187,"shortcodes":188,"cronEvents":189,"entryPointCount":127,"unprotectedCount":127},[140,146,149,153,159,163],{"type":141,"name":142,"callback":143,"file":144,"line":145},"action","init","init_hook","wp-crop-and-resize.php",19,{"type":141,"name":147,"callback":147,"file":144,"line":148},"admin_enqueue_scripts",20,{"type":141,"name":150,"callback":151,"file":144,"line":152},"admin_footer","my_admin_footer_function",22,{"type":154,"name":155,"callback":156,"priority":157,"file":144,"line":158},"filter","attachment_fields_to_edit","add_attachment_location_field",10,24,{"type":154,"name":160,"callback":161,"priority":157,"file":144,"line":162},"wp_generate_attachment_metadata","create_original_image",34,{"type":154,"name":164,"callback":164,"file":144,"line":165},"image_size_names_choose",36,[167,172,176,180,183],{"action":168,"nopriv":169,"callback":170,"hasNonce":169,"hasCapCheck":169,"file":144,"line":171},"uie-get-editor",false,"uie_get_editor",26,{"action":173,"nopriv":169,"callback":174,"hasNonce":169,"hasCapCheck":169,"file":144,"line":175},"uie-crop-and-save","uie_crop_and_save",27,{"action":177,"nopriv":169,"callback":178,"hasNonce":169,"hasCapCheck":169,"file":144,"line":179},"uie-scale-original-image","uie_scale_original_image",29,{"action":181,"nopriv":169,"callback":182,"hasNonce":169,"hasCapCheck":169,"file":144,"line":32},"uie-restore-original-image","uie_restore_original_image",{"action":184,"nopriv":169,"callback":185,"hasNonce":169,"hasCapCheck":169,"file":144,"line":186},"uie-crop-original-image","uie_crop_original_image",32,[],[],[],{"dangerousFunctions":191,"sqlUsage":192,"outputEscaping":194,"fileOperations":127,"externalRequests":13,"nonceChecks":13,"capabilityChecks":13,"bundledLibraries":273},[],{"prepared":13,"raw":13,"locations":193},[],{"escaped":13,"rawEcho":195,"locations":196},43,[197,201,202,203,204,207,208,209,211,213,215,217,219,221,223,224,226,228,230,232,234,235,237,239,240,241,242,244,246,247,248,250,252,254,255,257,259,261,263,265,267,269,271],{"file":198,"line":199,"context":200},"templates\\scale-original-image.php",17,"raw output",{"file":198,"line":199,"context":200},{"file":198,"line":162,"context":200},{"file":198,"line":165,"context":200},{"file":205,"line":206,"context":200},"templates\\uie-get-editor.php",33,{"file":205,"line":206,"context":200},{"file":205,"line":206,"context":200},{"file":205,"line":210,"context":200},70,{"file":205,"line":212,"context":200},72,{"file":205,"line":214,"context":200},73,{"file":205,"line":216,"context":200},75,{"file":205,"line":218,"context":200},76,{"file":205,"line":220,"context":200},77,{"file":205,"line":222,"context":200},79,{"file":205,"line":11,"context":200},{"file":205,"line":225,"context":200},88,{"file":205,"line":227,"context":200},102,{"file":205,"line":229,"context":200},103,{"file":205,"line":231,"context":200},108,{"file":205,"line":233,"context":200},129,{"file":205,"line":233,"context":200},{"file":205,"line":236,"context":200},162,{"file":205,"line":238,"context":200},163,{"file":205,"line":238,"context":200},{"file":205,"line":238,"context":200},{"file":205,"line":238,"context":200},{"file":205,"line":243,"context":200},164,{"file":205,"line":245,"context":200},166,{"file":205,"line":245,"context":200},{"file":205,"line":245,"context":200},{"file":205,"line":249,"context":200},167,{"file":205,"line":251,"context":200},169,{"file":205,"line":253,"context":200},174,{"file":205,"line":253,"context":200},{"file":205,"line":256,"context":200},201,{"file":144,"line":258,"context":200},245,{"file":144,"line":260,"context":200},349,{"file":144,"line":262,"context":200},413,{"file":144,"line":264,"context":200},472,{"file":144,"line":266,"context":200},535,{"file":144,"line":268,"context":200},601,{"file":144,"line":270,"context":200},604,{"file":144,"line":272,"context":200},605,[],[],{"summary":276,"deductions":277},"The 'crop-and-resize-images' plugin version 1.2.4 presents a significant security risk due to its unprotected AJAX handlers.  While the plugin avoids dangerous functions and uses prepared statements for its SQL queries, the complete absence of capability and nonce checks on all five identified AJAX entry points is a major concern. This leaves the plugin vulnerable to various attacks, including unauthorized actions and potential cross-site request forgery (CSRF) if these AJAX actions are sensitive.  The static analysis also indicates that 100% of output is not properly escaped, which could lead to cross-site scripting (XSS) vulnerabilities if user-supplied data is reflected in the output without sanitization.\n\nThe plugin has no recorded vulnerability history, which is a positive sign and suggests a history of secure development. However, this should not overshadow the critical findings from the static analysis, as new vulnerabilities can emerge. The lack of taint analysis results is noted, but the existing code signals, particularly the unescaped output and unprotected AJAX, are sufficient to warrant concern.  In conclusion, while the plugin has strengths in its SQL handling and lack of past vulnerabilities, the critical security gaps in its AJAX endpoints and output escaping require immediate attention to mitigate significant risks.",[278,280,283,286],{"reason":279,"points":157},"AJAX handlers without auth checks",{"reason":281,"points":282},"Output escaping: 0% properly escaped",8,{"reason":284,"points":285},"Nonce checks: 0",7,{"reason":287,"points":285},"Capability checks: 0","2026-03-16T21:24:50.892Z",{"wat":290,"direct":306},{"assetPaths":291,"generatorPatterns":297,"scriptPaths":298,"versionParams":301},[292,293,294,295,296],"\u002Fwp-content\u002Fplugins\u002Fcrop-and-resize-images\u002Fcss\u002Fstyle.min.css","\u002Fwp-content\u002Fplugins\u002Fcrop-and-resize-images\u002Fcss\u002Fbackbone.modal.min.css","\u002Fwp-content\u002Fplugins\u002Fcrop-and-resize-images\u002Fjs\u002Fuie-main-script-min.js","\u002Fwp-content\u002Fplugins\u002Fcrop-and-resize-images\u002Fjs\u002Fbackbone.modal.min.js","\u002Fwp-content\u002Fplugins\u002Fcrop-and-resize-images\u002Fimg\u002Floader.gif",[],[299,300],"js\u002Fuie-main-script-min.js","js\u002Fbackbone.modal.min.js",[302,303,304,305],"crop-and-resize-images\u002Fcss\u002Fstyle.min.css?ver=","crop-and-resize-images\u002Fcss\u002Fbackbone.modal.min.css?ver=","crop-and-resize-images\u002Fjs\u002Fuie-main-script-min.js?ver=","crop-and-resize-images\u002Fjs\u002Fbackbone.modal.min.js?ver=",{"cssClasses":307,"htmlComments":314,"htmlAttributes":320,"restEndpoints":324,"jsGlobals":330,"shortcodeOutput":332},[308,309,310,311,312,313],"bbm-modal__topbar","bbm-modal__title","bbm-button","bbm-modal__section","bbm-modal__bottombar","app",[315,316,317,318,319],"Add backbone modal template to footer","Insert aditional image sizez to 'insert media into post' dropdown","Init Hook","Admin Enqueue Scripts","Add the open editor button to modal window",[321,322,323],"id=\"modal-template\"","id=\"open-crop-and-resize\"","data-post-id",[325,326,327,328,329],"\u002Fwp-json\u002Fuie-get-editor","\u002Fwp-json\u002Fuie-crop-and-save","\u002Fwp-json\u002Fuie-scale-original-image","\u002Fwp-json\u002Fuie-restore-original-image","\u002Fwp-json\u002Fuie-crop-original-image",[331],"js_vars",[333,334],"\u003Ca id=\"open-crop-and-resize\" data-post-id=\" ","Crop and resize"]