[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fgmkEjbGXo70FWJwIdt07Y8UL4QqXv3fGXN8XZGxFsEs":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":14,"tags":17,"homepage":23,"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":34,"analysis":141,"fingerprints":287},"choicecuts-image-juggler","ChoiceCuts Image Juggler","0.8.3.2, 12\u002F10\u002F2010","kestrel_id","https:\u002F\u002Fprofiles.wordpress.org\u002Fkestrel_id\u002F","\u003Cp>ChoiceCuts Image Juggler makes all image handling a piece of cake. Stripping images, resizing to Landscape, resizing to Portrait and creating Thumbnails are all handled. A couple of lightboxes can easily be slipped into the process so as present your images in their original glory. Using the new admin screen it is now very easy to activate site wide image juggling. There are several options to choose from.\u003C\u002Fp>\n\u003Cp>For WordPress users who are not afraid to do some template customisation, the library of functions is still available to do some great things with images, very simply.\u003C\u002Fp>\n\u003Cp>The core aim of this plugin is to make the life of someone who regularly uses WordPress a lot easier, in so far as to remove the need to do any image resizing while at the same time giving theme and template developers a tool to go way beyond the restricted, native image resize options of WordPress. Just upload post images at full size, anywhere within the content of your post, then the plugin will take care of everything else!\u003C\u002Fp>\n\u003Cp>The plugin uses the fantastic PHP Thumbnail library by http:\u002F\u002Fphpthumb.gxdlabs.com.\u003C\u002Fp>\n\u003Cp>Plug-in Homepage: www.workwithchoicecuts.com\u003C\u002Fp>\n\u003Ch3>Usage Exmaples\u003C\u002Fh3>\n\u003Cp>SHOW JUST THE FIRST IMAGE AS A LANDSCAPE BANNER\u003Cbr \u002F>\n– Get the first image from the current Post and output it as a 480px x 100 px and remove all other images from Post Content.\u003C\u002Fp>\n\u003Cp>\u003C\u003C php code start >>\u003Cbr \u002F>\n    the_post();\u003Cbr \u002F>\n    $postContent = get_the_content();\u003Cbr \u002F>\n    ccImj_firstLandscape( $postContent, 480, 100 );\u003Cbr \u002F>\n    echo ccImj_noImg( $postContent );\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>CREATE A THUMBNAIL FOR EACH OF 10 MOST RECENT POSTS IN THE BLOG CATEGORY\u003Cbr \u002F>\n– Get all posts from the ‘Blog’ category and output them as 60px square thumbnails, as well as the post title and post excerpt.\u003C\u002Fp>\n\u003Cp>\u003C\u003C php code start >>\u003Cbr \u002F>\n    query_posts( “category_name=Blog&showposts=10&orderby=date&order=DESC” );\u003Cbr \u002F>\n    while(have_posts()) {\u003Cbr \u002F>\n        the_post();\u003Cbr \u002F>\n        $postContent = get_the_content();\u003Cbr \u002F>\n        ccImj_firstThumb( $postContent, 60, get_permalink() );\u003Cbr \u002F>\n        the_title();\u003Cbr \u002F>\n        the_excerpt();\u003Cbr \u002F>\n    }\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Ch3>Full Plugin API\u003C\u002Fh3>\n\u003Cp>N.B. All functions are technical documented within the plugin code. Read through file cc_image_juggler.php within the plugin install folder for more information.\u003C\u002Fp>\n\u003Cp>\u002F\u002F ————————————————————————– IMAGE EXRACTION UTILITIES\u003C\u002Fp>\n\u003Cp>ccImj_getFirstImg\u003Cbr \u002F>\n– extract the first image from passed $content, return image file path only\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    $image = ccImj_getFirstImg( $postContent ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>ccImj_getAllImg\u003Cbr \u002F>\n– extract all images from passed $content, returns a multi-dimensional array. The returned array contains an element for each image found. Within each element is an associative array as follows: [‘tag’] – full html img tag. [‘url’] – image file path only.\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    $images = ccImj_getAllImg( $postContent ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>ccImj_noImg\u003Cbr \u002F>\n– remove all images from the passed parameter, typically post content\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    $contentWithoutImages = ccImj_noImg( $postContent ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>\u002F\u002F ————————————————————————– IMAGE MANIPULATION PREPARATION\u003C\u002Fp>\n\u003Cp>ccImj_resizeWidthURL\u003Cbr \u002F>\n– resize image to specified width, pass min_height to ensure consistent image dimensions. Return only the image resize URL, without embedding any HTML tags\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    $resizeUrl = ccImj_resizeWidthURL( $img_path, 480, 120 ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>ccImj_resizeHeightURL\u003Cbr \u002F>\n– resize image to specified height. Return only the image resize URL, without embedding any HTML tags\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    $resizeUrl = ccImj_resizeHeightURL( $img_path, 300 ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>ccImj_resizeWidth\u003Cbr \u002F>\n– resize image to specified width. Return full HTML IMG tag for resized image\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    $image_html = ccImj_resizeWidth( $img_path, 480, ‘class=”special-image-style” rel=”ajax-link-code-13″‘ ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>ccImj_resizeHeight\u003Cbr \u002F>\n– resize image to specified height. Return full HTML IMG tag for resized image\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    $image_html = ccImj_resizeHeight( $img_path, 300, ‘class=”special-image-style”‘ ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>ccImj_cropLandscape\u003Cbr \u002F>\n– proportionally resize image to specified width, then crop excess height as required\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    $image_html = ccImj_cropLandscape( $img_path, 300, 240 ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>ccImj_cropPortrait\u003Cbr \u002F>\n– proportionally resize image to specified height, then crop excess width as required\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    $image_html = ccImj_cropPortrait( $img_path, 300, 240, ‘class=”special-image-style” alt=”Your Blog”‘ ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>ccImj_cropSquareCtr\u003Cbr \u002F>\n– resize image to specified size, then crop a square from the centre\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    $image_html = ccImj_cropSquareCtr( $img_path, 60, ‘class=”special-image-style”‘ )\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>\u002F\u002F ————————————————————————– ‘GET FIRST’ FUNCTIONS\u003C\u002Fp>\n\u003Cp>ccImj_firstLandscape\u003Cbr \u002F>\n– extract the first image from the passed content, resize image to specified width, crop the excess if required and wrap it in a hyperlink if desired\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    ccImj_firstLandscape( $postContent, 480, TRUE, FALSE, ‘class=”special-image-style”‘ ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>ccImj_firstPortrait\u003Cbr \u002F>\n– extract the first image from the passed content, resize image to specified height, crop the excess if required and wrap it in a hyperlink if desired\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    ccImj_firstPortrait( $postContent, 600, TRUE, FALSE, ‘class=”special-image-style”‘ ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>ccImj_firstThumb\u003Cbr \u002F>\n– extract the first image from the passed content, then crop a square from the centre and wrap it in a hyperlink if desired\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    $image_html = ccImj_firstThumb( $content, 130, FALSE, TRUE, ‘class=”thumbnail-image-style”‘ ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>\u002F\u002F ————————————————————————– RESIZE & CROP PASSED IMAGE FUNCTIONS\u003C\u002Fp>\n\u003Cp>ccImj_linkedLandscape\u003Cbr \u002F>\n– resize image to specified width and height, then wrap it in a hyperlink if desired\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    ccImj_linkedLandscape( $img_path, 600, 200, FALSE, FALSE, ‘class=”mega-banner”‘ ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>ccImj_linkedPortrait\u003Cbr \u002F>\n– resize image to specified height and width, then wrap it in a hyperlink if desired\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    $your_variable = ccImj_linkedPortrait( $img_path, 400, 180, TRUE, TRUE, ‘class=”thumbnail-image-style”‘ ); ?>\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>ccImj_linkedThumb\u003Cbr \u002F>\n– resize image to specified size, then crop a square from the centre and wrap it in a hyperlink if desired\u003Cbr \u002F>\n\u003C\u003C php code start >>\u003Cbr \u002F>\n    ccImj_linkedThumb( $img_path, 200, ‘http:\u002F\u002Fwww.workwithchoicecuts.com’, FALSE, ‘class=”thumbnail-image-style”‘ )\u003Cbr \u002F>\n\u003C\u003C php code end >>\u003C\u002Fp>\n\u003Cp>\u002F\u002F ————————————————————————– FILTER ALL FUNCTIONS\u003C\u002Fp>\n\u003Cp>ccImj_flexiWidth\u003Cbr \u002F>\n– resize all images, to be within specified width sizes, in every post. if image is larger than max_width resize and present original via lightbox, or if smaller than min_width resize up to min_width.\u003Cbr \u002F>\n** To use this function edit the constant ‘FILTER_FLEXI_WIDTH’ value to be TRUE. Find this at the top of the plugin code.\u003C\u002Fp>\n\u003Cp>ccImj_allWidth\u003Cbr \u002F>\n– resize all images, to specified width, and wrap it in a hyperlink if desired\u003Cbr \u002F>\n** To use this function edit the constant ‘FILTER_ALL_WIDTH’ value to be TRUE. Find this at the top of the plugin code.\u003C\u002Fp>\n\u003Cp>ccImj_allCrop\u003Cbr \u002F>\n– resize all images, to specified square thumbnail size,  in every post to specified height and wrap it in a hyperlink if desired\u003Cbr \u002F>\n** To use this function edit the constant ‘FILTER_ALL_CROP’ value to be TRUE. Find this at the top of the plugin code.\u003C\u002Fp>\n","ChoiceCuts Image Juggler resizes images, generates thumbnails, adds lightboxes and enhances image presentation in WordPress.",10,6289,0,"","3.0.5","2.5",[18,19,20,21,22],"content","extraction","images","posts","resize","http:\u002F\u002Fwww.workwithchoicecuts.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fchoicecuts-image-juggler.zip",100,null,"2026-03-15T10:48:56.248Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":30,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},1,30,94,"2026-04-04T16:02:57.284Z",[35,54,72,93,119],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":43,"downloaded":44,"rating":25,"num_ratings":30,"last_updated":45,"tested_up_to":46,"requires_at_least":47,"requires_php":14,"tags":48,"homepage":50,"download_link":51,"security_score":52,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":53},"resize-images-in-posts","Resize Images In Posts","4.3","Alexandru Vornicescu","https:\u002F\u002Fprofiles.wordpress.org\u002Falexvorn2\u002F","\u003Cp>This is a WordPress plugin.\u003C\u002Fp>\n\u003Cp>If you want to resize images in your posts automatically so the page will load faster and use less bandwidth then this plugin can help you.\u003C\u002Fp>\n\u003Cp>To take effect just open a post or page and all images in that post will be resized to a smaller version.\u003C\u002Fp>\n\u003Cp>It will replace the URLs of the images that are too big with URLs of the resized images that will fit into the posts.\u003C\u002Fp>\n\u003Cp>The plugin will keep the original copy of all image files.\u003C\u002Fp>\n\u003Cp>Note: With version 4.3 now you can resize images in Text Widgets.\u003C\u002Fp>\n\u003Cp>Note: The filter – “wp_make_content_images_responsive” will be deactivated because with this plugin we will not need anymore.\u003C\u002Fp>\n","This plugin will resize images in your posts.",40,5749,"2017-10-29T18:27:00.000Z","4.7.32","4.7",[49,20,21,22],"image","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Fresize-images-in-posts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fresize-images-in-posts.zip",85,"2026-03-15T15:16:48.613Z",{"slug":55,"name":56,"version":57,"author":58,"author_profile":59,"description":60,"short_description":61,"active_installs":11,"downloaded":62,"rating":13,"num_ratings":13,"last_updated":63,"tested_up_to":64,"requires_at_least":65,"requires_php":14,"tags":66,"homepage":70,"download_link":71,"security_score":52,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":53},"contentresize","content-resize","1.0","viniciusgomes","https:\u002F\u002Fprofiles.wordpress.org\u002Fviniciusgomes\u002F","\u003Cp>Plugin simples para criar resumos com determinado número de palavras de um conteúdo..\u003C\u002Fp>\n","Plugin simples para criar resumos com determinado número de palavras de um conteúdo.",1844,"2011-08-18T19:10:00.000Z","3.1.4","3.1",[18,67,68,22,69],"excerpt","posts-resize","write","http:\u002F\u002Fviniwp.wordpress.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcontentresize.zip",{"slug":73,"name":74,"version":75,"author":76,"author_profile":77,"description":78,"short_description":79,"active_installs":13,"downloaded":80,"rating":13,"num_ratings":13,"last_updated":81,"tested_up_to":82,"requires_at_least":83,"requires_php":84,"tags":85,"homepage":91,"download_link":92,"security_score":52,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":53},"nowy-widget","Nowy Widget for WordPress","1.0.3","Nowy Inc","https:\u002F\u002Fprofiles.wordpress.org\u002Fnowyinc\u002F","\u003Cp>The Nowy widget integrates with your website to display any posts directly from the Nowy social app into a single, customizable, and embeddable-anywhere feed from a designated business account. The Nowy widget helps travel bloggers, professional travelers, travel agencies, property management\u002Fmarketing businesses, and related service providers build their own influential social community and connect to the largest supply of user content and experiences.\u003C\u002Fp>\n\u003Ch3>Brand New Concept for Custom layout\u003C\u002Fh3>\n\u003Cp>The Nowy Widget is auto-scalable based on the website’s layout and fits perfectly.\u003C\u002Fp>\n\u003Ch3>Where is the Nowy Widget for WordPress Plugin Most Useful?\u003C\u002Fh3>\n\u003Cp>Below is one small list of which areas you can start using the Nowy Widget Showcase for WordPress Plugin.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Travel Blogger’s social content showcase\u003C\u002Fli>\n\u003Cli>Fashion\u002FShopping\u002FMerchandise social content Showcase\u003C\u002Fli>\n\u003Cli>Travel stories\u002Fexperiences social content Showcase\u003C\u002Fli>\n\u003Cli>Travel agencies’ products\u002Fservices social content showcase\u003C\u002Fli>\n\u003Cli>Photography Showcase\u003C\u002Fli>\n\u003Cli>Product Showcase\u003C\u002Fli>\n\u003Cli>Testimonial Showcase\u003C\u002Fli>\n\u003Cli>Tour content Showcase\u003C\u002Fli>\n\u003Cli>Travel-related service providers\u003C\u002Fli>\n\u003Cli>property management\u002Fmarketing businesses Gallery Showcase\u003C\u002Fli>\n\u003Cli>Image\u002FMedia Gallery\u003C\u002Fli>\n\u003Cli>Etc\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features of Nowy Widget plugin for WordPress\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Perfect mobile responsive\u003C\u002Fli>\n\u003Cli>Auto-scalable and perfectly fit in mobile or desktop\u003C\u002Fli>\n\u003Cli>Posts amounts control \u003C\u002Fli>\n\u003Cli>Filter for certain Nowy user accounts, Nowy Places, Nowy Hashtags#\u003C\u002Fli>\n\u003Cli>Select topped posts at the plugin display\u003C\u002Fli>\n\u003Cli>Multiple options for display order ascending\u002Fdescending by Timestamps, Likes, Comments counts\u003C\u002Fli>\n\u003Cli>Exclude certain users’ accounts posts\u003C\u002Fli>\n\u003Cli>Exclude certain specific posts\u003C\u002Fli>\n\u003Cli>Cross-Browsers Support (Firefox, Chrome, Safari, Opera, etc.)\u003C\u002Fli>\n\u003Cli>No Coding Skill Required\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Technical Support\u003C\u002Fh3>\n\u003Cp>We’re active for any support issues and feature suggestions. So, I hope you will love it. If you have any more questions,Feel free to \u003Ca href=\"info@nowy.io\" rel=\"nofollow ugc\">contact us\u003C\u002Fa> if you want any custom widgets for your site.\u003C\u002Fp>\n\u003Ch3>Like Nowy Widget for WordPress?\u003C\u002Fh3>\n\u003Cp>Don’t forget to rate us on [WordPress].\u003C\u002Fp>\n","The Nowy Widget plugin allows you to create, manage, edit, and customize new Nowy app social content posts gallery layout.",1005,"2023-03-20T13:16:00.000Z","6.1.10","4.8","7.0",[86,87,88,89,90],"gallery-plugin","nowy-images-showcase","nowy-posts-gallery","nowy-widget-plugin","social-media-content","https:\u002F\u002Fnowy.io\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fnowy-widget.1.0.3.zip",{"slug":94,"name":95,"version":96,"author":97,"author_profile":98,"description":99,"short_description":100,"active_installs":101,"downloaded":102,"rating":103,"num_ratings":104,"last_updated":105,"tested_up_to":106,"requires_at_least":107,"requires_php":108,"tags":109,"homepage":114,"download_link":115,"security_score":116,"vuln_count":117,"unpatched_count":13,"last_vuln_date":118,"fetched_at":53},"shortpixel-image-optimiser","ShortPixel Image Optimizer – Optimize Images, Convert WebP & AVIF","6.4.3","ShortPixel","https:\u002F\u002Fprofiles.wordpress.org\u002Fshortpixel\u002F","\u003Ch3>🚀 The Ultimate Image Optimization Plugin for WordPress\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>⚡ Boost your site’s speed instantly! Optimize images and PDFs with one click, bulk compress to WebP and AVIF, use lazy loading, and resize images.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Increase your website’s SEO ranking, number of visitors, and ultimately your sales by optimising any image or PDF document on your website.\u003C\u002Fp>\n\u003Cp>The \u003Ca href=\"https:\u002F\u002Fshortpixel.com\" rel=\"nofollow ugc\">ShortPixel\u003C\u002Fa> plugin is a lightweight, user-friendly, install-and-forget solution for image optimization.\u003Cbr \u002F>\nIt is designed to work with any website type, whether it’s a small blog or a large WooCommerce-powered online store with tens of thousands of products.\u003Cbr \u002F>\nAdditionally, it’s an excellent choice for agencies, offering unlimited image optimization credits for a flat monthly fee.\u003C\u002Fp>\n\u003Ch4>🎬 Ready for a Quick DEMO of our Top Image Optimization Tool?\u003C\u002Fh4>\n\u003Cp>Test our plugin \u003Ca href=\"https:\u002F\u002Fdemo.tastewp.com\u002Fshortpixel-image-optimiser\" rel=\"nofollow ugc\">here\u003C\u002Fa>.\u003Cbr \u002F>\nMake an instant \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fimage-compression-test\" rel=\"nofollow ugc\">image compression test\u003C\u002Fa> of your site or \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fonline-image-compression\" rel=\"nofollow ugc\">compress some images\u003C\u002Fa> to test our optimization algorithms.\u003C\u002Fp>\n\u003Ch3>💡 Why is ShortPixel the best choice for image optimization or PDF compression?\u003C\u002Fh3>\n\u003Ch3>🆕 New! Brand new AI features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>AI Image Upscale (2x, 3x, 4x) – Upscale smaller images with high-quality AI upscaling, perfect for retina displays and crisp visuals.\u003C\u002Fli>\n\u003Cli>AI Background Removal – Instantly remove background from your images with one click, ideal for creating clean product photos. After the background is removed, your image can have a transparent background or be filled with a single solid color.\u003C\u002Fli>\n\u003Cli>AI Image Titles – In addition to ALT text, captions, and descriptions, you can now generate smart image titles using AI for better SEO.\u003C\u002Fli>\n\u003Cli>Bulk Remove AI Data – Easily clear all AI-generated image SEO data in one go.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🆕 New! Freshly added AI Image SEO features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>AI-powered image SEO – Automatically generate ALT text, captions, and image descriptions for all your images.\u003C\u002Fli>\n\u003Cli>Bulk mode – Mass-generate and update details for all your images.\u003C\u002Fli>\n\u003Cli>Preview mode – Test and fine-tune AI results before applying new ALT texts and descriptions in bulk.\u003C\u002Fli>\n\u003Cli>Multilingual – Support for 100+ languages.\u003C\u002Fli>\n\u003Cli>WooCommerce – Seamless support for WooCommerce product images.\u003C\u002Fli>\n\u003Cli>Unlimited credits – AI-generate image titles, captions, and more with our Unlimited plan.\u003C\u002Fli>\n\u003Cli>Accessibility – Improve website accessibility by generating all the necessary metadata for each image.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Freshly added features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Compress WebP images – ShortPixel now also \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fblog\u002Fintroducing-smartcompress\u002F\" rel=\"nofollow ugc\">smartly compresses\u003C\u002Fa> all your existing WebP images.\u003C\u002Fli>\n\u003Cli>Added support for serving CSS, JS and fonts from our global CDN.\u003C\u002Fli>\n\u003Cli>Save & Restore option for all settings – ideal for agencies and users managing multiple websites.\u003C\u002Fli>\n\u003Cli>Decide whether AI bots can use your images for machine learning (ML) training, or \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fblog\u002Fprevent-ai-data-mining-on-images\u002F\" rel=\"nofollow ugc\">block them entirely\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>You can now exclude images from optimization based on their upload date, perfect for skipping older or already optimized media.\u003C\u002Fli>\n\u003Cli>Filter and select images in bulk using date-based criteria, giving you precise control over what gets optimized and when.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🌍 Faster Websites for Global Audiences\u003C\u002Fh3>\n\u003Cp>The ShortPixel plugin now includes a built-in global Content Delivery Network (CDN). This powerful feature ensures that ShortPixel-optimized WebP and AVIF images, as well as your website’s CSS and JavaScript files, are delivered quickly and efficiently to any location worldwide, minimizing delays and improving load times.\u003C\u002Fp>\n\u003Cp>By leveraging this built-in solution, you enhance the user experience, reduce server strain, boost SEO performance, and simplify website management — all with minimal effort.\u003C\u002Fp>\n\u003Ch3>📸 Resize and Compress Images Without Losing Quality\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Popular plugin with over 300,000 active installations – according to WordPress\u003C\u002Fli>\n\u003Cli>Compress JPG (and its variations: JPEG, JPEG 2000, JPEG XR), PNG, GIF (still or animated) images, and also PDF documents.\u003C\u002Fli>\n\u003Cli>Option to automatically convert PNG to JPG if that results in smaller images (ideal for large PNG pictures).\u003C\u002Fli>\n\u003Cli>CMYK to RGB conversion.\u003C\u002Fli>\n\u003Cli>Progressive JPEG is used whenever it leads to a smaller image.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🌟 Lossy and Lossless image compression\u003C\u002Fh3>\n\u003Cp>Both \u003Cstrong>Lossy and Lossless image compression\u003C\u002Fstrong> are available for the most common image types (JPG, PNG, GIF, WebP, and AVIF) plus PDF files.\u003Cbr \u002F>\nWe also offer \u003Cstrong>Glossy\u003C\u002Fstrong> JPEG compression which is a very high-quality lossy optimization algorithm. Especially designed for photographers or for high-quality product pictures.\u003Cbr \u002F>\nOptimized images lead to a better user experience, improved PageSpeed Insights or GTmetrix results, higher Google PageRank, and more visitors.\u003C\u002Fp>\n\u003Ch3>🔄 Convert WebP and AVIF Formats\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Option to automatically convert JPEG, PNG, or GIF to WebP and AVIF for better performance and improved Google ranking.\u003C\u002Fli>\n\u003Cli>Automatically optimize your existing WebP files with ShortPixel’s SmartCompress algorithm.\u003C\u002Fli>\n\u003Cli>Animated GIFs can be automatically converted to much smaller animated WebP or AVIF files.\u003C\u002Fli>\n\u003Cli>Option to include next-gen images (WebP and AVIF) in front-end pages with a single click using the  tag.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>📦 Bulk Image Optimization and Background Image Processing\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>New! With ‘Background mode,’ images can now be optimized without needing to keep a browser tab open.\u003C\u002Fli>\n\u003Cli>Easily add recurring cron jobs for background optimization, ideal for sites where users upload images via the front end.\u003C\u002Fli>\n\u003Cli>Bulk-optimize all images in the Media Library or any gallery with a single click.\u003C\u002Fli>\n\u003Cli>Full WP-CLI support for background processing, especially useful for large Media Libraries.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🔥 Performance and Automatic Image Optimization\u003C\u002Fh3>\n\u003Cp>ShortPixel uses minimal resources and works well with any shared, cloud, VPS, or dedicated web hosting. It can optimize any image on your website, including those not listed in the Media Library, such as images in galleries or those added directly via FTP.\u003Cbr \u002F>\nAll optimization is performed using ShortPixel’s Image Optimization Cloud, so your hosting resources remain unaffected.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>New! Automatic scan of Custom media folders for new images using cron jobs.\u003C\u002Fli>\n\u003Cli>Skip already optimized images to avoid redundant processing.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🎨 Compatibility with Popular Themes, Page Builders, and Media Library Plugins\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Works great for eCommerce websites using WooCommerce and other plugins.\u003C\u002Fli>\n\u003Cli>Compatible with NextGEN Gallery, Modula, Foo Gallery, and other galleries or sliders.\u003C\u002Fli>\n\u003Cli>Fully compatible with WP Retina 2x, including automatic compression of retina images.\u003C\u002Fli>\n\u003Cli>Works seamlessly with WordPress multisite installs (sub-folders or sub-domains) using a single API key.\u003C\u002Fli>\n\u003Cli>Compatible with WPML and WPML Media plugins.\u003C\u002Fli>\n\u003Cli>Fully compatible with WP Offload Media plugin.\u003C\u002Fli>\n\u003Cli>Supports both HTTPS and HTTP websites.\u003C\u002Fli>\n\u003Cli>Compatible with virtually all hosting providers.\u003C\u002Fli>\n\u003Cli>Integrates with Gravity Forms’ post_image field type to optimize images upon upload.\u003C\u002Fli>\n\u003Cli>Works with watermarking plugins.\u003C\u002Fli>\n\u003Cli>Integrates directly with Cloudflare via a Cloudflare Token, automatically synchronizing updates with Cloudflare cache.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>New! HEIC file support\u003C\u002Fstrong>\u003Cbr \u002F>\nWith ShortPixel, you can now add images in Apple’s HEIC format directly from your iPhone. They will be automatically converted to JPG and optimized according to your settings. Easy!\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fknowledge-base\u002Farticle\u002Fheic-apple-images-support-in-shortpixel-image-optimizer\u002F\" rel=\"nofollow ugc\">Read more\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🔧 Advanced Image Optimization Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>NEW Smart Cropping: Generate \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fknowledge-base\u002Farticle\u002Fwhat-is-smart-cropping\u002F\" rel=\"nofollow ugc\">subject-centered\u003C\u002Fa> thumbnails using AI, ideal for eCommerce websites.\u003C\u002Fli>\n\u003Cli>Optimize thumbnails and featured images, with options to exclude individual thumbnails from optimization.\u003C\u002Fli>\n\u003Cli>Advanced exclusion options (exclude images based on filename, path, size, or complex regex).\u003C\u002Fli>\n\u003Cli>Ability to optimize any image, including those in NextGEN Gallery and other image galleries or sliders.\u003C\u002Fli>\n\u003Cli>Option to scale images down, with two automatic resizing options for large images (applicable to featured images).\u003C\u002Fli>\n\u003Cli>Option to deactivate auto-optimization of images on upload.\u003C\u002Fli>\n\u003Cli>Keep or remove EXIF data from images, which is especially useful for photographers or for enhanced privacy.\u003C\u002Fli>\n\u003Cli>Easily test lossy, glossy, or lossless versions of images with a single click in the Media Library.\u003C\u002Fli>\n\u003Cli>100MB filesize limit\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🛡️ Backup and Safety\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Safe to test and use: original images are backed up locally and can be restored with a single click (either individually or in bulk).\u003C\u002Fli>\n\u003Cli>No credits are used for images optimized by less than 5%\u003C\u002Fli>\n\u003Cli>Save & Restore option for all settings – ideal for agencies and users managing multiple websites.\u003C\u002Fli>\n\u003Cli>Decide whether AI bots can use your images for machine learning (ML) training, or block them entirely\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>📊 Reporting, Analytics, Compliance and Customer Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>30-day optimization report with detailed image statistics and overall site performance improvements.\u003C\u002Fli>\n\u003Cli>24\u002F7 stellar support.\u003C\u002Fli>\n\u003Cli>We are fully GDPR compliant.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>🚀 \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fpricing\" rel=\"nofollow ugc\">New Plan: ShortPixel Unlimited\u003C\u002Fa>\u003C\u002Fstrong>\u003Cbr \u002F>\nThis is the ideal monthly plan for web agencies or website owners with multiple sites and frequent image uploads.\u003Cbr \u002F>\nIt allows you to optimize an unlimited number of images with ShortPixel Image Optimizer or use \u003Ca href=\"\u002F\u002Fwordpress.org\u002Fplugins\u002Fshortpixel-adaptive-images\u002F”\" rel=\"nofollow ugc\">ShortPixel Adaptive Images\u003C\u002Fa> without worrying about CDN traffic limits.\u003Cbr \u002F>\nRead more details on our \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fknowledge-base\u002Farticle\u002Fhow-does-the-unlimited-plan-work\u002F\" rel=\"nofollow ugc\">dedicated page\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>free optimization credits for non-profits\u003C\u002Fstrong>, \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fcontact\" rel=\"nofollow ugc\">contact us\u003C\u002Fa> for details\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>💸 How much does it cost?\u003C\u002Fstrong>\u003Cbr \u002F>\nShortPixel comes with 100 free credits per month, and additional unlimited monthly credits can be purchased for $9.99.\u003Cbr \u002F>\nOne-time credit packages that never expire are available starting at $19.99.\u003Cbr \u002F>\nCheck out \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fpricing\" rel=\"nofollow ugc\">our prices\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>🌟 Testimonials:\u003C\u002Fstrong>\u003Cbr \u002F>\n  ★★★★★ \u003Cstrong>A Super Plugin works very well 62% reduction overall.\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fa-super-plugin-works-very-well-62-reduction-overall\u002F\" rel=\"ugc\">robertvarns\u003C\u002Fa>\u003Cbr \u002F>\n  ★★★★★ \u003Cstrong>The secret sauce for a WordPress website.\u003C\u002Fstrong>  \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fthe-secret-sauce-for-a-wordpress-website\u002F\" rel=\"ugc\">mark1mark\u003C\u002Fa>\u003Cbr \u002F>\n  ★★★★★ \u003Cstrong>A must have plugin, great support!\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fa-must-have-plugin-great-support\u002F\" rel=\"ugc\">ElColo13\u003C\u002Fa>\u003Cbr \u002F>\n  ★★★★★ \u003Cstrong>Excellent Plugin! Even Better Customer Service!\u003C\u002Fstrong>  \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fgreat-plugin-great-support-508\u002F\" rel=\"ugc\">scaliendo\u003C\u002Fa>\u003Cbr \u002F>\n  ★★★★★ \u003Cstrong>Great image compression, solid plugin, equally great support.\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fsupport-shortpixel-image-optimiser\u002F\" rel=\"ugc\">matters1959\u003C\u002Fa>\u003Cbr \u002F>\n  \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fshortpixel-image-optimiser\u002Freviews\u002F?filter=5\" rel=\"ugc\">more testimonials\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fblockquote>\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\u002FFVPWeNsJWss?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\u003Cp>Help us spread the word by recommending ShortPixel to your friends and collect \u003Cstrong>100 lifetime monthly additional image credits for each referred active user\u003C\u002Fstrong>. Make money by promoting a great plugin with our \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Ffree-sign-up-affiliate\" rel=\"nofollow ugc\">30% commission affiliate program\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>🛠️ Other plugins by ShortPixel\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffastpixel-website-accelerator\u002F\" rel=\"ugc\">FastPixel Caching\u003C\u002Fa> – WP Optimization made easy\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fshortpixel-adaptive-images\u002F\" rel=\"ugc\">ShortPixel Adaptive Images\u003C\u002Fa> – On-the-fly image optimization & CDN delivery\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fenable-media-replace\u002F\" rel=\"ugc\">Enable Media Replace\u003C\u002Fa> – Easily replace images or files in Media Library\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fregenerate-thumbnails-advanced\u002F\" rel=\"ugc\">reGenerate Thumbnails Advanced\u003C\u002Fa> – Easily regenerate thumbnails\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fresize-image-after-upload\u002F\" rel=\"ugc\">Resize Image After Upload\u003C\u002Fa> – Automatically resize each uploaded image\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-svg-images\u002F\" rel=\"ugc\">WP SVG Images\u003C\u002Fa> – Secure upload of SVG files to Media Library \u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fshortpixel-critical-css\u002F\" rel=\"ugc\">ShortPixel Critical CSS\u003C\u002Fa> – Automatically generate above-the-fold CSS for fatster loading times and better SEO scores\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>📩 Get in touch!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Email \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fcontact\" rel=\"nofollow ugc\">https:\u002F\u002Fshortpixel.com\u002Fcontact\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Twitter \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fshortpixel\" rel=\"nofollow ugc\">https:\u002F\u002Ftwitter.com\u002Fshortpixel\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Facebook \u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002FShortPixel\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.facebook.com\u002FShortPixel\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>LinkedIn \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fshortpixel\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fshortpixel\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Actions and Filters for Developers\u003C\u002Fh3>\n\u003Cp>The ShortPixel Image Optimizer plugin calls the following actions and filters:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>do_action( 'shortpixel_image_optimised', $post_id );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>upon successful optimization;\u003C\u002Fp>\n\u003Cpre>\u003Ccode>do_action(\"shortpixel_before_restore_image\", $post_id);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>before restoring an image from backup;\u003C\u002Fp>\n\u003Cpre>\u003Ccode>do_action(\"shortpixel_after_restore_image\", $post_id);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>after succesful restore;\u003C\u002Fp>\n\u003Cp>For version 4.22.10 and earlier:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>apply_filters(\"shortpixel_backup_folder\", $backup_folder, $main_file_path, $sizes);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>just before returning the ShortPixel backup folder, usually \u002Fwp-content\u002Fuploads\u002FShortpixelBackups. The \u003Ccode>$sizes\u003C\u002Fcode> are the sizes array from metadata;\u003C\u002Fp>\n\u003Cp>For version 5.0.0 and later:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$directory = apply_filters(\"shortpixel\u002Ffile\u002Fbackup_folder\", $directory, $file);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>just before returning the ShortPixel backup folder, usually \u002Fwp-content\u002Fuploads\u002FShortpixelBackups).\u003C\u002Fp>\n\u003Cpre>\u003Ccode>apply_filters('shortpixel_image_exists', file_exists($path), $path, $post_id);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>post ID is not always set, only if it’s an image from Media Library;\u003C\u002Fp>\n\u003Cpre>\u003Ccode>apply_filters('shortpixel_image_urls', $URLs, $post_id);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>filters the URLs that will be sent to optimisation, \u003Ccode>$URLs\u003C\u002Fcode> is a plain array;\u003C\u002Fp>\n\u003Cp>\u003Cstrong>The filter below is deprecated starting with version 5.0.0!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>apply_filters('shortpixel\u002Fdb\u002Fchunk_size', $chunk);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>the \u003Ccode>$chunk\u003C\u002Fcode> is the value ShortPixel chooses to use as the number of selected records in one query (based on total table size), some hosts work better with a different value;\u003C\u002Fp>\n\u003Cp>For version 4.22.10 and earlier:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>apply_filters('shortpixel\u002Fbackup\u002Fpaths', $PATHs, $mainPath);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>filters the array of paths of the images sent for backup and can be used to exclude certain paths\u002Fimages\u002Fthumbs from being backed up, based on the image path. \u003Ccode>$mainPath\u003C\u002Fcode> is the path of the main image, while \u003Ccode>$PATHs\u003C\u002Fcode> is an array with all files to be backed up (including thumbnails);\u003C\u002Fp>\n\u003Cp>For version 5.0.0 and later:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>apply_filters('shortpixel\u002Fimage\u002Fskip_backup', false, $this->getFullPath(), $this->is_main_file)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>filters the images that are skipped or not from the backup. Return true for the type of images to be skipped in the backup. If you check if \u003Ccode>is_main_file\u003C\u002Fcode> is true and return false (do not skip backup), while while otherwise returning true, the backup will be kept only for the main image. We suggest using it in conjuction with this action that fires right after the restore from backup is done:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>do_action('shortpixel\u002Fimage\u002Fafter_restore', $this, $this->id, $cleanRestore);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This action can be used to cleanup the meta data from the database, regenerate thumbnails after restoring the main file, writing the updated meta data, etc.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>apply_filters('shortpixel\u002Fsettings\u002Fimage_sizes', $sizes);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>filters the array (\u003Ccode>$sizes\u003C\u002Fcode>) of image sizes that can be excluded from processing (displayed in the plugin Advanced settings);\u003C\u002Fp>\n\u003Cpre>\u003Ccode>apply_filters('shortpixel\u002Fimage\u002Fimageparamlist', $result, $this->id, $this);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>filters the list of parameters sent to the API so that resizing can be performed more granularly;\u003C\u002Fp>\n\u003Cpre>\u003Ccode>apply_filters('shortpixel\u002Fapi\u002Frequest', $requestParameters, $item_id);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>filters the parameters sent to the optimization API (through \u003Ccode>$requestParameters\u003C\u002Fcode>), described in detail here: \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fapi-docs\" rel=\"nofollow ugc\">ShortPixel Reducer API\u003C\u002Fa>; \u003Ccode>$item_id\u003C\u002Fcode> contains the ID of the Media Library item, or the ID of the Custom Media item (when used). In short, this filter can be used to alter any parameters sent to the API, depending on the needs. For example, you can set different resize parameters for different post types, different compression levels, remove EXIF or not, covert WebP\u002FAVIF, and basically any other parameter that is sent to the API for a specific image (together with all its thumbnails).\u003C\u002Fp>\n\u003Cp>This filter enables the background ShortPixel processing in additional pages (see \u003Ca href=\"https:\u002F\u002Fshortpixel.com\u002Fknowledge-base\u002Farticle\u002Fon-what-pages-does-spio-optimize-images\u002F\" rel=\"nofollow ugc\">here\u003C\u002Fa> the original list). Here’s an example of this filter that enables the processing on the Comments screen (to be placed in your functions.php file):\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter('shortpixel\u002Finit\u002Foptimize_on_screens', function ($screens) {\n    $screens[] = 'edit-comments';\n    return $screens;\n});\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The \u003Ccode>edit-comments\u003C\u002Fcode> is the ID of the screen where you want to enable the processing.\u003C\u002Fp>\n\u003Cp>If you want to add multiple pages, here’s what the snippet looks like:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter('shortpixel\u002Finit\u002Foptimize_on_screens', function ($screens) {\n    $screens = array('edit-comments', 'plugins', 'another-custom-post-type-page');\n    return $screens;\n    });\n\n\nadd_filter('shortpixel\u002Fimage\u002Ffilecheck', function () { return true; });\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This filter forces a file check for WebP\u002FAVIF in case they were manually removed from disk.\u003C\u002Fp>\n\u003Cp>If you want to disable the automatic cache flush that is triggered after image optimization, you can use this filter:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'shortpixel\u002Fexternal\u002Fflush_cache', function() { return false; } );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>In order to define custom thumbnails to be picked up by the optimization you have two options, both comma separated defines:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define('SHORTPIXEL_CUSTOM_THUMB_SUFFIXES', '_tl,_tr');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>will handle custom thumbnails like image-100x100_tl.jpg;\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define('SHORTPIXEL_CUSTOM_THUMB_INFIXES', '-uae');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>will handle custom thumbnails like image-uae-100×100.jpg;\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define('SHORTPIXEL_USE_DOUBLE_WEBP_EXTENSION', true);\ndefine('SHORTPIXEL_USE_DOUBLE_AVIF_EXTENSION', true);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>will tell the plugin to create double extensions for the WebP\u002FAVIF image counterparts, for example, image.jpg.webp\u002Fimage.jpg.avif for image.jpg;\u003C\u002Fp>\n\u003Cp>Enable the “Trusted mode” in case the file system has limitations and is very slow in responding to direct file operations by adding this constant:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define('SHORTPIXEL_TRUSTED_MODE', true);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This will simply skip file check operations and if the Media Library loads very slowly or freezes, you might want to try adding the constant above to your wp-config.php file.\u003C\u002Fp>\n\u003Cp>Disable the feedback survey when the plugin is deactivated:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define('SHORTPIXEL_SKIP_FEEDBACK', true);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Hide the Cloudflare settings by defining these constants in wp-config.php:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define('SHORTPIXEL_CFTOKEN', 'the Cloudflare API token that has Purge Cache right');\ndefine('SHORTPIXEL_CFZONE', 'The Zone ID from the domain settings in Cloudflare');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Add HTTP basic authentication credentials by defining these constants in wp-config.php\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define('SHORTPIXEL_HTTP_AUTH_USER', 'user');\ndefine('SHORTPIXEL_HTTP_AUTH_PASSWORD', 'pass');\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Optimize images & PDFs smartly. Create and compress next-gen WebP and AVIF formats. Smart crop and resize.",300000,18526594,90,802,"2026-01-29T14:18:00.000Z","6.9.4","4.8.0","7.4",[110,111,112,113,22],"compress-images","convert-webp","image-optimization","optimize-images","https:\u002F\u002Fshortpixel.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fshortpixel-image-optimiser.6.4.3.zip",95,7,"2026-03-25 00:00:00",{"slug":120,"name":121,"version":122,"author":123,"author_profile":124,"description":125,"short_description":126,"active_installs":127,"downloaded":128,"rating":129,"num_ratings":130,"last_updated":131,"tested_up_to":106,"requires_at_least":132,"requires_php":133,"tags":134,"homepage":139,"download_link":140,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":53},"recent-posts-widget-with-thumbnails","Recent Posts Widget With Thumbnails","7.1.1","Kybernetik Services","https:\u002F\u002Fprofiles.wordpress.org\u002Fkybernetikservices\u002F","\u003Cp>List the most recent posts with post titles, thumbnails, excerpts, authors, categories, dates and more!\u003C\u002Fp>\n\u003Cp>Although the plugin is built only for widget areas users reported that it \u003Cstrong>works in Elementor\u003C\u002Fstrong> and \u003Cstrong>works in Oxygen\u003C\u002Fstrong>. Whether it runs in other page builders is unknown. Please let me know in which \u003Cstrong>page builder\u003C\u002Fstrong> you were able to use the plugin successfully.\u003C\u002Fp>\n\u003Cp>The plugin does not collect any personal data, so it is \u003Cstrong>ready for EU General Data Protection Regulation (GDPR) compliance\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch4>Lightweight, simple and effective\u003C\u002Fh4>\n\u003Cp>No huge widget with hundreds of options. This plugin is based on the well-known WordPress default widget ‘Recent Posts’ and extended to display more information about the posts like e.g. thumbnails, excerpts and assigned categories. And it provides more options to build custom-taylored posts lists.\u003C\u002Fp>\n\u003Cp>The thumbnails will be built from the featured image of a post or of the first image in the post content. If there is neither a featured image nor a content image then you can define a default thumbnail.\u003C\u002Fp>\n\u003Cp>You can set the width and height of the thumbnails in the list. The thumbnails appear left-aligned to the post titles in left-to-right languages. In right-to-left languages they appear right-aligned.\u003C\u002Fp>\n\u003Ch4>What users wrote\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>“This plugin performs a simple task but one that I find to be invaluable.”\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fsimple-but-invaluable-plugin\u002F\" rel=\"ugc\">reviews\u003C\u002Fa> by funkster on July 1, 2025\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“I just want to say thank you for developing such a good plugin.”\u003C\u002Fstrong> in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fthanks-for-developing-such-a-great-plugin-4\u002F\" rel=\"ugc\">reviews\u003C\u002Fa> by modelaid on July 3, 2024\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“Excellent plugin!”\u003C\u002Fstrong> in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fexcellent-plugin-8567\u002F\" rel=\"ugc\">reviews\u003C\u002Fa> by mystnick on April 18, 2023\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“… one of the dynamic and smart, yet admin and user optimized widget plugins …”\u003C\u002Fstrong> in \u003Ca href=\"https:\u002F\u002Fwww.sktthemes.org\u002Fwordpress-plugins\u002Fadd-widgets-wordpress-website\u002F\" rel=\"nofollow ugc\">How to Add Widgets and Start Using Them in WordPress Website?\u003C\u002Fa> by SKT Posts Themes on September 3, 2020\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“بهترین افزونه های نمایش آخرین نوشته ها در وردپرس”\u003C\u002Fstrong> in \u003Ca href=\"https:\u002F\u002Fmodirwp.com\u002F%D8%A7%D9%81%D8%B2%D9%88%D9%86%D9%87-recent-posts-widget-with-thumbnails\u002F\" rel=\"nofollow ugc\">ابزارک آخرین نوشته وردپرس\u003C\u002Fa> by Ghodsi on December 16, 2019\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“Another good all around widget, suitable for most projects”\u003C\u002Fstrong> in \u003Ca href=\"https:\u002F\u002Fhowto-wordpress-tips.com\u002Ffree-wordpress-recent-posts-widget\u002F\" rel=\"nofollow ugc\">Free WordPress recent posts widget – Which one is the best?\u003C\u002Fa> on December 3, 2019\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“In just a few clicks, your website will look considerably more established and professional.”\u003C\u002Fstrong> in \u003Ca href=\"https:\u002F\u002Fblog.hubspot.com\u002Fwebsite\u002Fwordpress-thumbnail-plugins\" rel=\"nofollow ugc\">3 Best WordPress Thumbnail Plugins to Manage Images Perfectly\u003C\u002Fa> by HubSpot Staff on October 29, 2019\u003C\u002Fli>\n\u003Cli>\u003Cstrong>The best of the recent posts widgets\u003C\u002Fstrong> in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fthe-best-of-the-recent-posts-widget\u002F\" rel=\"ugc\">reviews\u003C\u002Fa> by noddemix on June 13, 2019\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Number 8\u003C\u002Fstrong> in \u003Ca href=\"https:\u002F\u002Fideiasdig.com\u002F14-plugins-para-otimizar-seu-site\u002F#8Recent_Posts_Widget_With_Thumbnails\" rel=\"nofollow ugc\">14 Plugins para Otimizar seu Site\u003C\u002Fa> by Ideias Dig on November 8, 2018\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“Truly EXCELLENT Plugin!”\u003C\u002Fstrong> in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Ftruly-excellent-plugin\u002F\" rel=\"ugc\">reviews\u003C\u002Fa> by dnuttal on October 11, 2018\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“Easier than making an egg, seriously.”\u003C\u002Fstrong> in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Feasier-than-making-an-egg-seriously\u002F\" rel=\"ugc\">reviews\u003C\u002Fa> by djackofall on October 2, 2017\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“This plugin is INCREDIBLE”\u003C\u002Fstrong> in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fdo-you-also-have-one-for-most-popular-posts\u002F\" rel=\"ugc\">reviews\u003C\u002Fa> by lucio7 on August 25, 2017\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Widgets Users Will Love\u003C\u002Fstrong> in \u003Ca href=\"https:\u002F\u002Fspeckyboy.com\u002Ffree-wordpress-widget-plugins\u002F\" rel=\"nofollow ugc\">10 Ultra-Useful Free WordPress Widget Plugins\u003C\u002Fa> by Eric Karkovack on June 16, 2017\u003C\u002Fli>\n\u003Cli>\u003Cstrong>listed\u003C\u002Fstrong> in \u003Ca href=\"https:\u002F\u002Fwpteamsupport.com\u002Fwordpress-plugins-engage-visitors\u002F\" rel=\"nofollow ugc\">20 WordPress Plugins that Steals Attention to Engage Visitors of Your Site\u003C\u002Fa> by WP Team Support on March 6, 2017\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Number 1\u003C\u002Fstrong> in \u003Ca href=\"https:\u002F\u002Fwww.nimbusthemes.com\u002F8-essential-wordpress-widgets-to-supercharge-your-website\u002F\" rel=\"nofollow ugc\">8 essential WordPress widgets to supercharge your website\u003C\u002Fa> by Rafay Ansari on January 31, 2017\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“Excellent (after trying a few)!”\u003C\u002Fstrong> in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fexcellent-after-trying-a-few\u002F\" rel=\"ugc\">reviews\u003C\u002Fa> by giorgissimo on January 6, 2017\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>What users filmed\u003C\u002Fh4>\n\u003Cp>Some users published video tutorials on YouTube:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=dKoqcLBHhkM\" rel=\"nofollow ugc\">Class 09 – Working with Plugins (Recent Posts Widget With Thumbnails)\u003C\u002Fa> by WordPress Learning Bangladesh on March 7, 2017\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=qS9WIeaMb6s\" rel=\"nofollow ugc\">Recent Posts Widget With Thumbnails Setup Tutorial – WordPress Lesson and Tip\u003C\u002Fa> by Making a Website on April 17, 2016\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fyoutu.be\u002Fdqzz8NZc99Q\" rel=\"nofollow ugc\">Add Recent Posts Widget with Thumbnail – WordPress\u003C\u002Fa> by eMediaCoach on August 15, 2015\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Options you can set\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Title of the widget\u003C\u002Fli>\n\u003Cli>Number of listed posts\u003C\u002Fli>\n\u003Cli>Open post links in new windows\u003C\u002Fli>\n\u003Cli>Different options for post order and sorting\u003C\u002Fli>\n\u003Cli>Hide the current post in list\u003C\u002Fli>\n\u003Cli>Show only sticky posts\u003C\u002Fli>\n\u003Cli>Hide sticky posts\u003C\u002Fli>\n\u003Cli>Keep sticky posts on top of the list if not hidden\u003C\u002Fli>\n\u003Cli>Hide post title\u003C\u002Fli>\n\u003Cli>Maximum length of post title\u003C\u002Fli>\n\u003Cli>Show post author name\u003C\u002Fli>\n\u003Cli>Label for the author names\u003C\u002Fli>\n\u003Cli>Show post categories\u003C\u002Fli>\n\u003Cli>Show post category names as links to their archives\u003C\u002Fli>\n\u003Cli>Label for categories\u003C\u002Fli>\n\u003Cli>Show post date\u003C\u002Fli>\n\u003Cli>Show post excerpt\u003C\u002Fli>\n\u003Cli>Show number of comments\u003C\u002Fli>\n\u003Cli>Excerpt length\u003C\u002Fli>\n\u003Cli>Signs after excerpt\u003C\u002Fli>\n\u003Cli>Ignore post excerpt field as excerpt source (builds excerpts only from the post content)\u003C\u002Fli>\n\u003Cli>Ignore post content as excerpt source (builds excerpts only from the excerpt fields)\u003C\u002Fli>\n\u003Cli>Show posts of selected categories (or of all categories)\u003C\u002Fli>\n\u003Cli>Show post thumbnail (featured image)\u003C\u002Fli>\n\u003Cli>Registered thumbnail dimensions\u003C\u002Fli>\n\u003Cli>Thumbnail width in px\u003C\u002Fli>\n\u003Cli>Thumbnail height in px\u003C\u002Fli>\n\u003Cli>Keep the aspect ratio of thumbnails\u003C\u002Fli>\n\u003Cli>Try to take the first post image as thumbnail\u003C\u002Fli>\n\u003Cli>Only use the first post image as thumbnail\u003C\u002Fli>\n\u003Cli>Use default thumbnail if no thumbnail is available\u003C\u002Fli>\n\u003Cli>Always use default thumbnail\u003C\u002Fli>\n\u003Cli>Default thumbnail URL\u003C\u002Fli>\n\u003Cli>Alternative text of the default thumbnail\u003C\u002Fli>\n\u003Cli>Omit all alternative texts of the thumbnails for a better accessibility\u003C\u002Fli>\n\u003Cli>Print slugs of post categories in class attribute of LI elements\u003C\u002Fli>\n\u003Cli>Print inline CSS instead of creating a CSS file\u003C\u002Fli>\n\u003Cli>No CSS generation at all\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Useful hints for developers: Supported Hooks\u003C\u002Fh4>\n\u003Cp>The plugin considers the output of actions hooked on:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Ccode>rpwwt_widget_posts_args\u003C\u002Fcode>\n\u003Cul>\n\u003Cli>\u003Cstrong>passed argument:\u003C\u002Fstrong> the query arguments as an array\u003C\u002Fli>\n\u003Cli>\u003Cstrong>expected return value:\u003C\u002Fstrong> an array of query arguments\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ccode>widget_title\u003C\u002Fcode>\n\u003Cul>\n\u003Cli>\u003Cstrong>passed arguments:\u003C\u002Fstrong>\n\u003Col>\n\u003Cli>the widget title as a string\u003C\u002Fli>\n\u003Cli>the widget settings as an array\u003C\u002Fli>\n\u003Cli>the widget base ID as a string\u003C\u002Fli>\n\u003C\u002Fol>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>expected return value:\u003C\u002Fstrong> a string\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ccode>rpwwt_excerpt_length\u003C\u002Fcode>\n\u003Cul>\n\u003Cli>\u003Cstrong>passed argument:\u003C\u002Fstrong> the maximum number of characters for the post excerpt as an integer\u003C\u002Fli>\n\u003Cli>\u003Cstrong>expected return value:\u003C\u002Fstrong> an integer\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ccode>rpwwt_excerpt_more\u003C\u002Fcode>\n\u003Cul>\n\u003Cli>\u003Cstrong>passed argument:\u003C\u002Fstrong> the string to append after the post excerpt\u003C\u002Fli>\n\u003Cli>\u003Cstrong>expected return value:\u003C\u002Fstrong> a string\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ccode>rpwwt_the_excerpt\u003C\u002Fcode>\n\u003Cul>\n\u003Cli>\u003Cstrong>passed arguments:\u003C\u002Fstrong>\n\u003Col>\n\u003Cli>the content of the post excerpt field as a string\u003C\u002Fli>\n\u003Cli>the post object\u003C\u002Fli>\n\u003C\u002Fol>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>expected return value:\u003C\u002Fstrong> a string\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ccode>the_excerpt\u003C\u002Fcode>\n\u003Cul>\n\u003Cli>\u003Cstrong>passed argument:\u003C\u002Fstrong> the post excerpt as a string\u003C\u002Fli>\n\u003Cli>\u003Cstrong>expected return value:\u003C\u002Fstrong> a string\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ccode>rpwwt_categories\u003C\u002Fcode>\n\u003Cul>\n\u003Cli>\u003Cstrong>passed argument:\u003C\u002Fstrong> the category list of each post as a string\u003C\u002Fli>\n\u003Cli>\u003Cstrong>expected return value:\u003C\u002Fstrong> a string\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ccode>rpwwt_list_cats\u003C\u002Fcode>\n\u003Cul>\n\u003Cli>\u003Cstrong>passed arguments:\u003C\u002Fstrong>\n\u003Col>\n\u003Cli>the category name as a string\u003C\u002Fli>\n\u003Cli>the category as an array\u003C\u002Fli>\n\u003C\u002Fol>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>expected return value:\u003C\u002Fstrong> a string\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Useful hints for developers: Available CSS Selectors\u003C\u002Fh4>\n\u003Cp>To design the list and its items, you can use these CSS selectors:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>.rpwwt-widget: the element which contains the post list\n.rpwwt-widget ul: the list which contains the list items\n.rpwwt-widget ul li: the list item in the list\n.rpwwt-widget ul li.rpwwt-sticky: the list item of a sticky post\n.rpwwt-widget ul li a: link in the list\n.rpwwt-widget ul li a img: linked image\n.rpwwt-widget ul li a span.rpwwt-post-title: the post title\n.rpwwt-widget ul li div.rpwwt-post-author: the post author\n.rpwwt-widget ul li div.rpwwt-post-categories: the post category list\n.rpwwt-widget ul li div.rpwwt-post-date: the post date\n.rpwwt-widget ul li div.rpwwt-post-excerpt: the post excerpt\n.rpwwt-widget ul li div.rpwwt-post-excerpt .rpwwt-post-excerpt-more: the \"more\" text following the excerpt.\n.rpwwt-widget ul li div.rpwwt-post-comments-number: the number of comments\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Languages\u003C\u002Fh4>\n\u003Cp>The user interface is available in several languages.\u003C\u002Fp>\n\u003Cp>Starting from version 7.1.0 the handling for translations are moved to \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Frecent-posts-widget-with-thumbnails\u002F\" rel=\"nofollow ugc\">translate.wordpress.org\u003C\u002Fa>.\u003Cbr \u002F>\nPlease help to translate into more languages, or you can re-work on the current translations if you think it’s needed.\u003Cbr \u002F>\nIf you have done your translation, please leave a comment in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Frecent-posts-widget-with-thumbnails\" rel=\"ugc\">plugin’s support forum\u003C\u002Fa>. I’ll take care of the review and approval.\u003C\u002Fp>\n","List the most recent posts with post titles, thumbnails, excerpts, authors, categories, dates and more!",100000,3599279,96,212,"2025-12-01T17:12:00.000Z","4.6","5.2",[20,135,136,137,138],"posts-list","recent-posts","thumbnails","widget","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Frecent-posts-widget-with-thumbnails\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frecent-posts-widget-with-thumbnails.7.1.1.zip",{"attackSurface":142,"codeSignals":169,"taintFlows":220,"riskAssessment":268,"analyzedAt":286},{"hooks":143,"ajaxHandlers":165,"restRoutes":166,"shortcodes":167,"cronEvents":168,"entryPointCount":13,"unprotectedCount":13},[144,150,154,159,162],{"type":145,"name":146,"callback":147,"file":148,"line":149},"action","admin_menu","ccImj_addOptionsPage","cc_image_juggler.php",98,{"type":145,"name":151,"callback":152,"file":148,"line":153},"wp_head","ccImj_lightBox",165,{"type":155,"name":156,"callback":157,"priority":30,"file":148,"line":158},"filter","the_content","ccImj_flexiWidth",844,{"type":155,"name":156,"callback":160,"priority":30,"file":148,"line":161},"ccImj_allWidth",845,{"type":155,"name":156,"callback":163,"priority":30,"file":148,"line":164},"ccImj_allCrop",846,[],[],[],[],{"dangerousFunctions":170,"sqlUsage":183,"outputEscaping":185,"fileOperations":13,"externalRequests":13,"nonceChecks":13,"capabilityChecks":13,"bundledLibraries":215},[171,175,177,179],{"fn":172,"file":148,"line":173,"context":174},"unserialize",729,"$filterSettings = unserialize(get_option('ccImj_filterSettings'));",{"fn":172,"file":148,"line":176,"context":174},773,{"fn":172,"file":148,"line":178,"context":174},811,{"fn":172,"file":180,"line":181,"context":182},"cc_image_juggler_options.php",76,"$ccImj_filterSettings = @ unserialize( $filterOptions );",{"prepared":13,"raw":13,"locations":184},[],{"escaped":186,"rawEcho":187,"locations":188},19,13,[189,192,194,196,198,200,202,204,206,208,209,211,213],{"file":148,"line":190,"context":191},162,"raw output",{"file":148,"line":193,"context":191},595,{"file":148,"line":195,"context":191},619,{"file":148,"line":197,"context":191},643,{"file":148,"line":199,"context":191},671,{"file":148,"line":201,"context":191},695,{"file":148,"line":203,"context":191},713,{"file":180,"line":205,"context":191},104,{"file":180,"line":207,"context":191},110,{"file":180,"line":207,"context":191},{"file":180,"line":210,"context":191},116,{"file":180,"line":212,"context":191},126,{"file":180,"line":214,"context":191},135,[216],{"name":217,"version":218,"knownCves":219},"jQuery","1.4.2",[],[221,254],{"entryPoint":222,"graph":223,"unsanitizedCount":252,"severity":253},"ccImj_options_page (cc_image_juggler_options.php:22)",{"nodes":224,"edges":247},[225,230,235,239,241,245],{"id":226,"type":227,"label":228,"file":180,"line":229},"n0","source","$_POST['ccImj_filterSetting']",36,{"id":231,"type":232,"label":233,"file":180,"line":229,"wp_function":234},"n1","sink","update_option() [Settings Manipulation]","update_option",{"id":236,"type":227,"label":237,"file":180,"line":238},"n2","$_POST['ccImj_preferredLightbox']",50,{"id":240,"type":232,"label":233,"file":180,"line":238,"wp_function":234},"n3",{"id":242,"type":227,"label":243,"file":180,"line":244},"n4","$_POST['ccImj_defaultImage']",65,{"id":246,"type":232,"label":233,"file":180,"line":244,"wp_function":234},"n5",[248,250,251],{"from":226,"to":231,"sanitized":249},false,{"from":236,"to":240,"sanitized":249},{"from":242,"to":246,"sanitized":249},3,"low",{"entryPoint":255,"graph":256,"unsanitizedCount":252,"severity":253},"\u003Ccc_image_juggler_options> (cc_image_juggler_options.php:0)",{"nodes":257,"edges":264},[258,259,260,261,262,263],{"id":226,"type":227,"label":228,"file":180,"line":229},{"id":231,"type":232,"label":233,"file":180,"line":229,"wp_function":234},{"id":236,"type":227,"label":237,"file":180,"line":238},{"id":240,"type":232,"label":233,"file":180,"line":238,"wp_function":234},{"id":242,"type":227,"label":243,"file":180,"line":244},{"id":246,"type":232,"label":233,"file":180,"line":244,"wp_function":234},[265,266,267],{"from":226,"to":231,"sanitized":249},{"from":236,"to":240,"sanitized":249},{"from":242,"to":246,"sanitized":249},{"summary":269,"deductions":270},"The \"choicecuts-image-juggler\" plugin, version 0.8.3.2, exhibits a mixed security posture. On the positive side, it has a very small attack surface with no apparent AJAX handlers, REST API routes, shortcodes, or cron events exposed, and importantly, no known historical vulnerabilities.  However, the static analysis reveals critical concerns. The presence of the `unserialize` function is a significant risk, especially given the lack of nonce and capability checks around its usage.  While the plugin uses prepared statements for its SQL queries, the taint analysis indicates two flows with unsanitized paths, suggesting potential for unintended data handling or manipulation, even if not classified as critical.  The low percentage of properly escaped output further exacerbates these risks, as it can lead to cross-site scripting (XSS) vulnerabilities. The outdated bundled jQuery library is also a minor concern. Overall, while the plugin has a clean vulnerability history and a limited attack surface, the identified code signals and taint flows, particularly the insecure use of `unserialize` and poor output escaping, represent significant security weaknesses that require immediate attention.",[271,274,277,279,281,284],{"reason":272,"points":273},"Dangerous function: unserialize",15,{"reason":275,"points":276},"Unsanitized paths in taint analysis",8,{"reason":278,"points":117},"Low percentage of properly escaped output",{"reason":280,"points":252},"Bundled outdated library: jQuery v1.4.2",{"reason":282,"points":283},"No nonce checks",5,{"reason":285,"points":283},"No capability checks","2026-03-16T23:15:32.748Z",{"wat":288,"direct":307},{"assetPaths":289,"generatorPatterns":301,"scriptPaths":302,"versionParams":304},[290,291,292,293,294,295,296,297,298,299,300],"\u002Fwp-content\u002Fplugins\u002Fchoicecuts-image-juggler\u002Fincludes\u002Flightbox\u002Flightbox\u002Fjquery.lightbox.css","\u002Fwp-content\u002Fplugins\u002Fchoicecuts-image-juggler\u002Fincludes\u002Flightbox\u002Flightbox\u002Fjquery.lightbox.js","\u002Fwp-content\u002Fplugins\u002Fchoicecuts-image-juggler\u002Fincludes\u002Flightbox\u002Flightbox\u002Fimages\u002Flightbox-ico-loading.gif","\u002Fwp-content\u002Fplugins\u002Fchoicecuts-image-juggler\u002Fincludes\u002Flightbox\u002Flightbox\u002Fimages\u002Flightbox-btn-close.gif","\u002Fwp-content\u002Fplugins\u002Fchoicecuts-image-juggler\u002Fincludes\u002Flightbox\u002Flightbox\u002Fimages\u002Flightbox-btn-prev.gif","\u002Fwp-content\u002Fplugins\u002Fchoicecuts-image-juggler\u002Fincludes\u002Flightbox\u002Flightbox\u002Fimages\u002Flightbox-btn-next.gif","\u002Fwp-content\u002Fplugins\u002Fchoicecuts-image-juggler\u002Fincludes\u002Flightbox\u002Fpirobox\u002Fcss_pirobox\u002Fpirobox_w.css","\u002Fwp-content\u002Fplugins\u002Fchoicecuts-image-juggler\u002Fincludes\u002Flightbox\u002Fpirobox\u002FpiroBox.js","\u002Fwp-content\u002Fplugins\u002Fchoicecuts-image-juggler\u002Fincludes\u002Flightbox\u002Fpirobox\u002Fcss_pirobox\u002Fajax-loader_w.gif","\u002Fwp-content\u002Fplugins\u002Fchoicecuts-image-juggler\u002Fincludes\u002Flightbox\u002Ffancybox\u002Fjquery.fancybox-1.3.0.css","\u002Fwp-content\u002Fplugins\u002Fchoicecuts-image-juggler\u002Fincludes\u002Flightbox\u002Ffancybox\u002Fjquery.fancybox-1.3.0.pack.js",[],[303],"http:\u002F\u002Fcode.jquery.com\u002Fjquery-1.4.2.min.js",[305,306],"choicecuts-image-juggler\u002Fstyle.css?ver=","choicecuts-image-juggler\u002Fscript.js?ver=",{"cssClasses":308,"htmlComments":315,"htmlAttributes":317,"restEndpoints":321,"jsGlobals":322,"shortcodeOutput":324},[309,310,311,312,313,314],"ccImj-lightbox","thumbs","single","thumbs_all","next","previous",[316,316],"\u003C!-- ChoiceCuts Image Juggler Options -->",[318,319,320],"id=\"ccimj-options\"","name=\"ccimj-options\"","class=\"ccImj-lightbox\"",[],[217,323],"window.cc_image_juggler_plugin_url",[325,326,327,328,329,330,331,332,333,334,335,336],"[choicecuts_image_juggler]","[choicecuts_image_juggler type=\"thumbnail\"]","[choicecuts_image_juggler type=\"resized_width\"]","[choicecuts_image_juggler type=\"resized_height\"]","[choicecuts_image_juggler type=\"square_thumbnail\"]","[choicecuts_image_juggler type=\"resized_proportional_width\"]","[choicecuts_image_juggler type=\"resized_proportional_height\"]","[choicecuts_image_juggler type=\"remove_images\"]","[choicecuts_image_juggler type=\"auto_resize_width\"]","[choicecuts_image_juggler type=\"auto_resize_height\"]","[choicecuts_image_juggler type=\"auto_resize_crop\"]","[choicecuts_image_juggler type=\"link_to_lightbox\"]"]