[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fKX6lR2Rne7boEtqxuHyU7avqfOh5EPoLi8EBbJU6j54":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":35,"analysis":139,"fingerprints":444},"images-sync-for-cloudflare","Images Sync for Cloudflare","1.0.8","Franky","https:\u002F\u002Fprofiles.wordpress.org\u002F301st\u002F","\u003Cp>\u003Cstrong>Images Sync for Cloudflare\u003C\u002Fstrong> automatically uploads your WordPress images to Cloudflare Images and stores optimized delivery URLs directly in post meta. Perfect for headless setups, JAMstack sites, or anyone who wants fast, globally-distributed images without changing their workflow.\u003C\u002Fp>\n\u003Ch4>Why Use This Plugin?\u003C\u002Fh4>\n\u003Cp>Headless frontends need stable, cacheable CDN URLs. This plugin makes WordPress the source of truth while Cloudflare Images handles delivery and optimization. No custom resolvers needed — just query the meta field.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Flexible Mappings\u003C\u002Fstrong> — Map any image source (Featured Image, ACF fields, post meta) to Cloudflare Images with customizable delivery URL storage\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Preset System\u003C\u002Fstrong> — Define reusable presets for OG images, thumbnails, heroes, squares — consistent URLs across your site\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Preview Studio\u003C\u002Fstrong> — Visually test how images look with different presets before going live\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Auto-Sync\u003C\u002Fstrong> — Images sync automatically on post save, or bulk-process existing content via Action Scheduler\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flexible Variants\u003C\u002Fstrong> — Smart detection prevents broken images and 9429 errors\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Headless-Ready\u003C\u002Fstrong> — URLs stored in post meta, perfect for GraphQL\u002FREST API consumption\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WP-CLI Support\u003C\u002Fstrong> — \u003Ccode>wp cfimg sync\u003C\u002Fcode> commands for scripted workflows\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Secure Storage\u003C\u002Fstrong> — API token encrypted with libsodium (AES-256 fallback)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No Lock-in\u003C\u002Fstrong> — Your images stay in WordPress Media Library; Cloudflare URLs are plain meta values\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Security\u003C\u002Fh4>\n\u003Cp>Your Cloudflare API token is encrypted at rest using modern cryptography (libsodium or AES-256-CBC with HMAC). The token is never stored in plain text and is only decrypted when making API requests.\u003C\u002Fp>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Cloudflare account with \u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fproducts\u002Fcloudflare-images\u002F\" rel=\"nofollow ugc\">Cloudflare Images\u003C\u002Fa> subscription\u003C\u002Fli>\n\u003Cli>API Token with “Cloudflare Images: Edit” permission\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin optionally connects to external Cloudflare services to upload, manage, and deliver images. No connection is made until the user configures API credentials and explicitly triggers a sync, test, or preview action.\u003C\u002Fp>\n\u003Ch4>Cloudflare Images API\u003C\u002Fh4>\n\u003Cp>This plugin sends requests to the \u003Ca href=\"https:\u002F\u002Fapi.cloudflare.com\u002F\" rel=\"nofollow ugc\">Cloudflare API\u003C\u002Fa> (\u003Ccode>api.cloudflare.com\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Cp>Data sent to Cloudflare (only when the user configures credentials and triggers actions):\u003C\u002Fp>\n\u003Cul>\n\u003Cli>API token — for authentication (sent as a Bearer token header, never logged or stored in plain text)\u003C\u002Fli>\n\u003Cli>Image files — binary content of WordPress media attachments\u003C\u002Fli>\n\u003Cli>Image metadata — WordPress attachment ID and a purpose label (e.g. “preview”)\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Configuration updates — Flexible Variants enable\u002Fdisable flag\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fterms\u002F\" rel=\"nofollow ugc\">Cloudflare Terms of Service\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fprivacypolicy\u002F\" rel=\"nofollow ugc\">Cloudflare Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fapi\u002F\" rel=\"nofollow ugc\">Cloudflare API Documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Cloudflare Image Delivery\u003C\u002Fh4>\n\u003Cp>Delivery URLs use the \u003Ca href=\"https:\u002F\u002Fimagedelivery.net\u002F\" rel=\"nofollow ugc\">Cloudflare Image Delivery\u003C\u002Fa> CDN (\u003Ccode>imagedelivery.net\u003C\u002Fcode>). These URLs are stored in post meta and served directly to site visitors by their browsers. The plugin itself makes one request to this service to detect Flexible Variants support (canary check).\u003C\u002Fp>\n\u003Cp>No visitor data, IP addresses, cookies, or personal information is ever sent to Cloudflare by this plugin.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fterms\u002F\" rel=\"nofollow ugc\">Cloudflare Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fprivacypolicy\u002F\" rel=\"nofollow ugc\">Cloudflare Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fimages\u002F\" rel=\"nofollow ugc\">Cloudflare Images Documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>This plugin does not collect, store, or transmit any personal user data. Only image files and technical metadata (attachment IDs, image hashes) are sent to Cloudflare.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed by \u003Ca href=\"https:\u002F\u002F301.st\" rel=\"nofollow ugc\">301st\u003C\u002Fa> with \u003Ca href=\"https:\u002F\u002Fclaude.ai\" rel=\"nofollow ugc\">Claude AI\u003C\u002Fa>.\u003C\u002Fp>\n","Auto-sync WordPress images to Cloudflare Images. Stores optimized CDN URLs in post meta — ready for headless, ACF, or classic themes.",0,178,"","7.0","6.2","8.0",[18,19,20,21,22],"acf","cdn","cloudflare","headless","images","https:\u002F\u002Fgithub.com\u002Finvestblog\u002Fcloudflare-images-sync","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimages-sync-for-cloudflare.1.0.8.zip",100,null,"2026-03-15T10:48:56.248Z",[],{"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},"301st",2,30,94,"2026-04-04T04:48:23.119Z",[36,62,80,97,116],{"slug":37,"name":38,"version":39,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":46,"num_ratings":47,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":14,"tags":51,"homepage":56,"download_link":57,"security_score":58,"vuln_count":59,"unpatched_count":11,"last_vuln_date":60,"fetched_at":61},"cf-images","Offload, AI & Optimize with Cloudflare Images","1.9.8","Anton Vanyukov","https:\u002F\u002Fprofiles.wordpress.org\u002Fvanyukov\u002F","\u003Cp>Offload your media library to Cloudflare Images and let it handle everything for you – store, resize, optimize and deliver images in the best possible format to your users.\u003C\u002Fp>\n\u003Ch4>Why Overpay for CDN Plugins?\u003C\u002Fh4>\n\u003Cp>With the avalanche of expensive plugins out there, it’s time to switch to a smarter choice. Why should you pay more for something that deserves to be free?\u003C\u002Fp>\n\u003Ch4>Simplify Your Image Management\u003C\u002Fh4>\n\u003Cp>Offload your media library to Cloudflare Images! Let our plugin take charge:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Store your images securely;\u003C\u002Fli>\n\u003Cli>Resize images to perfection without any manual hassle;\u003C\u002Fli>\n\u003Cli>Optimize them to ensure they load blazingly fast;\u003C\u002Fli>\n\u003Cli>Deliver in the most user-friendly format, ensuring satisfaction at every user’s end.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>But wait, there’s more!\u003C\u002Fh4>\n\u003Cp>Image CDN – deliver images from a global network of servers.\u003Cbr \u002F>\nImage AI – tag, caption and generate new images using AI.\u003Cbr \u002F>\nCompression – optimize JPEG\u002FPNG images to decrease file size without compromising visual quality.\u003C\u002Fp>\n\u003Ch4>A Developer’s Promise\u003C\u002Fh4>\n\u003Cp>Born from personal need, this plugin represents a developer’s dedication to the community. While it’s still a work in progress, remember – it’s crafted with real user needs in mind, not profit.\u003C\u002Fp>\n\u003Ch4>Your Feedback Makes Us Better\u003C\u002Fh4>\n\u003Cp>Found a hiccup? Yearning for a feature? Just shoot us a support request. Our commitment is to continually evolve to serve you better. Your wish is our command!\u003C\u002Fp>\n\u003Ch4>Disclaimer\u003C\u002Fh4>\n\u003Cp>Cloudflare, the Cloudflare logo, and Cloudflare Workers are trademarks and\u002For registered trademarks of Cloudflare, Inc. in the United States and other jurisdictions.\u003C\u002Fp>\n","Offload you media library images to the Cloudflare Images service. Store, resize, optimize and deliver images in a fast and secure manner.",1000,35942,98,34,"2025-12-30T23:37:00.000Z","6.8.5","5.6",[19,52,53,54,55],"cloudflare-images","compress","image-ai","optimize","https:\u002F\u002Fvcore.au","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcf-images.1.9.8.zip",99,1,"2025-11-20 00:00:00","2026-03-15T15:16:48.613Z",{"slug":63,"name":64,"version":65,"author":66,"author_profile":67,"description":68,"short_description":69,"active_installs":70,"downloaded":71,"rating":25,"num_ratings":72,"last_updated":73,"tested_up_to":49,"requires_at_least":50,"requires_php":74,"tags":75,"homepage":78,"download_link":79,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":61},"edge-images","Edge Images","5.5.7","Jono Alderson","https:\u002F\u002Fprofiles.wordpress.org\u002Fjonoaldersonwp\u002F","\u003Cp>Edge Images automatically uses your edge transformation service (e.g., Cloudflare, Accelerated Domains, Imgix, etc.) to apply performance optimizations to \u003Ccode>\u003Cimg>\u003C\u002Fcode> markup.\u003C\u002Fp>\n\u003Cp>⚠️ \u003Cstrong>Important\u003C\u002Fstrong>: This plugin requires a supported edge provider with image transformation features enabled (e.g., Cloudflare Pro, BunnyCDN, etc). See the Requirements section for details.\u003C\u002Fp>\n\u003Ch4>🚀 Why should I use Edge Images?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Instant Performance Boost\u003C\u002Fstrong>: Automatically optimize and serve images in modern formats (WebP\u002FAVIF) through your existing CDN\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Zero Configuration\u003C\u002Fstrong>: Works out of the box with your existing images and themes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No Local Processing\u003C\u002Fstrong>: All transformations happen at the edge – no server load or storage overhead\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Perfectly Sized Images\u003C\u002Fstrong>: Automatically generates the exact image dimensions needed for every device and viewport\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cost Effective\u003C\u002Fstrong>: No need for expensive image optimization services or additional storage\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🎯 Perfect For\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Sites with lots of images that need optimization\u003C\u002Fli>\n\u003Cli>Performance-focused developers and site owners\u003C\u002Fli>\n\u003Cli>Anyone using Cloudflare, BunnyCDN, or similar services\u003C\u002Fli>\n\u003Cli>Sites that want modern image formats without the complexity\u003C\u002Fli>\n\u003Cli>Developers tired of managing multiple image sizes\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>💡 How It Works\u003C\u002Fh4>\n\u003Cp>WordPress typically creates multiple copies of each uploaded image in different sizes. This approach is inefficient and often results in:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Images that are too large or small for their display size\u003C\u002Fli>\n\u003Cli>Unnecessary storage usage\u003C\u002Fli>\n\u003Cli>Missing sizes for modern responsive designs\u003C\u002Fli>\n\u003Cli>Lack of modern format support (WebP\u002FAVIF)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Edge Images solves these problems by:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Intercepting image requests\u003C\u002Fli>\n\u003Cli>Determining the optimal size and format needed\u003C\u002Fli>\n\u003Cli>Using your CDN to transform the image on-demand\u003C\u002Fli>\n\u003Cli>Caching the result for future requests\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>⚡️ Features\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Core Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Automatic WebP\u002FAVIF conversion\u003C\u002Fli>\n\u003Cli>Intelligent responsive image handling\u003C\u002Fli>\n\u003Cli>Smart \u003Ccode>srcset\u003C\u002Fcode> generation\u003C\u002Fli>\n\u003Cli>Automatic image optimization\u003C\u002Fli>\n\u003Cli>Optional \u003Ccode>\u003Cpicture>\u003C\u002Fcode> element wrapping\u003C\u002Fli>\n\u003Cli>Zero local processing\u003C\u002Fli>\n\u003Cli>Maintains original images\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Advanced Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Fine-grained transformation control\u003C\u002Fli>\n\u003Cli>Multiple CDN provider support\u003C\u002Fli>\n\u003Cli>Developer-friendly filters\u003C\u002Fli>\n\u003Cli>Yoast SEO & Rank Math integrations\u003C\u002Fli>\n\u003Cli>Bricks integration\u003C\u002Fli>\n\u003Cli>Gutenberg compatibility\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🔌 Supported Providers\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Cloudflare\u003C\u002Fstrong> (Pro plan or higher)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Accelerated Domains\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>BunnyCDN\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Imgix\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🛠️ Technical Example\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Your Code\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>echo wp_get_attachment_image(1, [640,400], false, ['fit' => 'contain']);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>What WordPress Usually Outputs\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cimg width=\"380\" height=\"400\" \n     src=\"\u002Fuploads\u002F2024\u002F11\u002F1.jpg\" \n     class=\"attachment-640x400 size-640x400 wp-image-123\" \n     srcset=\"\u002Fuploads\u002F2024\u002F11\u002F1.jpg 400w, \u002Fuploads\u002F2024\u002F11\u002F1-285x300.jpg 285w\" \n     sizes=\"(max-width: 640px) 100vw, 640px\">\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>That’s multiple different images files, none of which are the right size!\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What Edge Images Outputs\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cpicture class=\"edge-images-container\" style=\"--max-width: 640px;\">\n  \u003Cimg \n       class=\"attachment-1140x600 size-640x400 wp-image-123 edge-images-processed\"\n       width=\"640\" height=\"400\" \n       src=\"\u002Fcdn-cgi\u002Fimage\u002Ff=auto,fit=contain,w=640,h=400\u002Fuploads\u002F2024\u002F11\u002F1.jpg\" \n       srcset=\"\u002Fcdn-cgi\u002Fimage\u002Ff=auto,w=320,h=188\u002Fuploads\u002F2024\u002F11\u002F1.jpg 320w,\n               \u002Fcdn-cgi\u002Fimage\u002Ff=auto,w=640,h=400\u002Fuploads\u002F2024\u002F11\u002F1.jpg 640w,\n               \u002Fcdn-cgi\u002Fimage\u002Ff=auto,w=1280,h=800\u002Fuploads\u002F2024\u002F11\u002F1.jpg 1280w\"\n       sizes=\"(max-width: 640px) 100vw, 640px\">\n\u003C\u002Fpicture>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>That’s a range of perfectly sized options for different devices and viewports, automatically optimized images in modern formats, served from your CDN, futureproofed for supporting next-generation capabilities, and with no storage overheads.\u003C\u002Fp>\n\u003Ch4>🎨 Customization\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Transform Parameters\u003C\u002Fstrong>\u003Cbr \u002F>\nControl every aspect of image transformation with attributes like:\u003Cbr \u002F>\n* \u003Ccode>width\u003C\u002Fcode>\u002F\u003Ccode>height\u003C\u002Fcode>: Exact dimensions\u003Cbr \u002F>\n* \u003Ccode>fit\u003C\u002Fcode>: Resizing behavior (contain, cover, crop)\u003Cbr \u002F>\n* \u003Ccode>quality\u003C\u002Fcode>: Compression level\u003Cbr \u002F>\n* \u003Ccode>format\u003C\u002Fcode>: Output format (auto, webp, avif)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Filtering\u003C\u002Fstrong>\u003Cbr \u002F>\nDisable transformations globally or selectively:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F\u002F Disable all transformations\nadd_filter('edge_images_disable', '__return_true');\n\n\u002F\u002F Disable for specific images\nadd_filter('edge_images_disable_transform', function($should_disable, $html) {\n    if (strpos($html, 'example.jpg') !== false) {\n        return true;\n    }\n    return $should_disable;\n}, 10, 2);\n\n\u002F\u002F Override max width for constrained content\nadd_filter('edge_images_max_width', function($max_width) {\n    \u002F\u002F Example: Use a different max width for single posts\n    if (is_single()) {\n        return 800;\n    }\n    return $max_width;\n});\n\n\u002F\u002F Customize srcset width multipliers\nadd_filter('edge_images_width_multipliers', function($multipliers) {\n    \u002F\u002F Add more granular steps between sizes\n    return [0.25, 0.5, 0.75, 1, 1.25, 1.5, 2];\n});\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>🔧 Requirements\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Essential\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>A supported edge provider with image transformation features enabled:\n\u003Cul>\n\u003Cli>Cloudflare Pro plan or higher with Image Resizing enabled\u003C\u002Fli>\n\u003Cli>Accelerated Domains with Image Resizing enabled\u003C\u002Fli>\n\u003Cli>BunnyCDN with Image Processing enabled\u003C\u002Fli>\n\u003Cli>Imgix with a configured source\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Technical\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>PHP 7.4 or higher\u003C\u002Fli>\n\u003Cli>WordPress 5.9 or higher\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>✅ Getting Started\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Install and activate the plugin\u003C\u002Fli>\n\u003Cli>Go to Settings > Edge Images\u003C\u002Fli>\n\u003Cli>Select your CDN provider\u003C\u002Fli>\n\u003Cli>That’s it! Your images will now be automatically optimized\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>🤝 Integrations\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Yoast SEO\u003C\u002Fstrong>\u003Cbr \u002F>\nAutomatically optimizes images in:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Meta tags (og:image, etc.)\u003C\u002Fli>\n\u003Cli>Schema.org output\u003C\u002Fli>\n\u003Cli>XML sitemaps\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🔒 Privacy\u003C\u002Fh4>\n\u003Cp>Edge Images processes images through third-party edge providers. Here’s what you need to know about privacy:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Data Processing\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Images are processed through your chosen edge provider (Cloudflare, Accelerated Domains, etc.)\u003C\u002Fli>\n\u003Cli>No personal data is collected or stored by the plugin itself\u003C\u002Fli>\n\u003Cli>Image URLs are passed to the edge provider for transformation\u003C\u002Fli>\n\u003Cli>Original images remain on your server; only public URLs are processed\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Edge Provider Privacy\u003C\u002Fstrong>\u003Cbr \u002F>\nDifferent providers have different privacy implications:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Cloudflare: Images are processed according to \u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002Fprivacypolicy\u002F\" rel=\"nofollow ugc\">Cloudflare’s Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Accelerated Domains: Images are processed according to \u003Ca href=\"https:\u002F\u002Faccelerateddomains.com\u002Fprivacy\u002F\" rel=\"nofollow ugc\">Accelerated Domains’ Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>BunnyCDN: Images are processed according to \u003Ca href=\"https:\u002F\u002Fbunny.net\u002Fprivacy\u002F\" rel=\"nofollow ugc\">BunnyCDN’s Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Data Storage\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The plugin stores your selected settings in your WordPress database\u003C\u002Fli>\n\u003Cli>No user data is collected or stored\u003C\u002Fli>\n\u003Cli>No analytics or tracking is performed\u003C\u002Fli>\n\u003Cli>Cache files may be created in your uploads directory for optimization\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>GDPR Compliance\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The plugin is GDPR-compliant as it does not collect, store, or process personal data\u003C\u002Fli>\n\u003Cli>Users should review their chosen edge provider’s privacy policy and data processing terms\u003C\u002Fli>\n\u003Cli>Site owners should update their privacy policy to reflect their use of third-party image processing services\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Development\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjonoalderson\u002Fedge-images\" rel=\"nofollow ugc\">GitHub Repository\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjonoalderson\u002Fedge-images\u002Fissues\" rel=\"nofollow ugc\">Report Issues\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Turbocharge your WordPress images by using an edge provider (like Cloudflare or Accelerated Domains) and optimizing your HTML markup.",20,2317,5,"2025-06-29T10:56:00.000Z","7.4",[19,20,22,76,77],"optimization","performance","https:\u002F\u002Fgithub.com\u002Fjonoalderson\u002Fedge-images\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fedge-images.5.5.7.zip",{"slug":81,"name":82,"version":83,"author":84,"author_profile":85,"description":86,"short_description":87,"active_installs":11,"downloaded":88,"rating":25,"num_ratings":59,"last_updated":13,"tested_up_to":89,"requires_at_least":13,"requires_php":13,"tags":90,"homepage":95,"download_link":96,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"techvila-image-optimization-and-cdn","Techvila image optimization and CDN","1.1","Ruhul Amin","https:\u002F\u002Fprofiles.wordpress.org\u002Fruhulamin\u002F","\u003Cp>This plugin takes your website performance to the next level by optimizing your images to WebP format and serving them through our powerful CDN server. This ensures minimal load on your web hosting server, allowing you to maximize resources and maintain high-speed performance without the stress of manual optimization. In addition, it intelligently handles the loading of your static resources, such as images, JavaScript, and CSS files, by seamlessly delivering them through the reliable and robust Cloudflare CDN. This comprehensive approach significantly reduces the overall size of your web pages and dramatically enhances your website’s load time and user experience.\u003C\u002Fp>\n\u003Cp>Effortless Implementation: Our plugin is designed for simplicity. There’s no need to sign up for any additional service or go through complicated configuration processes. Simply activate the plugin, and you’re ready to go. The moment users visit your site’s front end, the plugin goes to work: images are converted to the WebP format (a modern and efficient image format that provides superior compression and quality) and are served directly to browsers that support it. This not only accelerates page rendering but also ensures optimal performance on both desktop and mobile devices.\u003C\u002Fp>\n\u003Cp>Complete Resource Management: The plugin doesn’t stop at image optimization. All your static assets, including JavaScript and CSS files, are fetched from the Cloudflare CDN, a globally distributed network designed to deliver content from the server closest to your site visitor. This minimizes latency and ensures your site loads at lightning speed regardless of your visitor’s location.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Benefits at a Glance:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Zero Server Load:\u003C\u002Fstrong> Offload the heavy lifting to our CDN servers, keeping your hosting server free for core operations and backend processes.\u003Cbr \u002F>\n\u003Cstrong>Faster Page Load Time:\u003C\u002Fstrong> Serving compressed WebP images and static resources from a CDN greatly reduces page load time, leading to enhanced user satisfaction and improved conversion rates.\u003Cbr \u002F>\n\u003Cstrong>SEO Advantages:\u003C\u002Fstrong> Faster websites rank higher in search engine results. With our plugin, you can improve your page speed scores, a critical ranking factor, without any manual effort.\u003Cbr \u002F>\n\u003Cstrong>No Technical Skills Required:\u003C\u002Fstrong> Activate the plugin and let it handle everything for you, making it ideal for beginners and experienced developers alike.\u003Cbr \u002F>\n\u003Cstrong>Browser Compatibility:\u003C\u002Fstrong> Automatically serves WebP images to compatible browsers and falls back to standard formats when needed, ensuring consistent delivery across different devices and user environments.\u003Cbr \u002F>\nImprove your site’s speed, decrease bounce rates, and boost overall SEO performance with our Image Optimization and CDN Plugin. Experience seamless optimization, superior speed, and effortless implementation that puts you ahead of the competition.\u003Cbr \u002F>\nLearn more about techvila cdn https:\u002F\u002Ftechvila.com\u002Ffree-cdn\u003Cbr \u002F>\nHere is their terms of service https:\u002F\u002Ftechvila.com\u002Fprivacy-policy\u002F\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ftechvila.com\u002F\" rel=\"nofollow ugc\">WordPress Maintenance Services\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>Features:\u003C\u002Fh4>\n\u003Cp>Plug and play. No configuration needed.\u003C\u002Fp>\n","Completely automatic image optimization and load static rerouces from cdn",1062,"6.6.5",[20,91,92,93,94],"free-cdn","image-optimization","speed-optimization","webp-images","https:\u002F\u002Ftechvila.com\u002Ffree-cdn","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftechvila-image-optimization-and-cdn.1.1.zip",{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":105,"downloaded":106,"rating":25,"num_ratings":59,"last_updated":107,"tested_up_to":108,"requires_at_least":109,"requires_php":110,"tags":111,"homepage":13,"download_link":115,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":61},"wpgraphql-acf","WPGraphQL for ACF","2.5.1","Jason Bahl","https:\u002F\u002Fprofiles.wordpress.org\u002Fjasonbahl\u002F","\u003Cp>WPGraphQL for Advanced Custom Fields is a free, open-source WordPress plugin that adds ACF Fields and Field Groups to the WPGraphQL Schema.\u003C\u002Fp>\n\u003Ch4>Create ACF Field Groups\u003C\u002Fh4>\n\u003Cp>Create ACF Field Groups and Fields using the ACF User Interface, register them with PHP, or leverage ACF local JSON. Each field group and the fields within it can be configured to “Show in GraphQL.”\u003C\u002Fp>\n\u003Ch4>Query your fields with GraphQL\u003C\u002Fh4>\n\u003Cp>Once your field groups and fields are configured to “Show in GraphQL,” they become available in the GraphQL Schema for querying.\u003C\u002Fp>\n\u003Ch4>Supported Field Types\u003C\u002Fh4>\n\u003Cp>WPGraphQL for ACF provides support for most built-in field types of ACF (free & PRO) and extends support to most field types from ACF Extended (free & PRO).\u003C\u002Fp>\n\u003Ch3>Updating\u003C\u002Fh3>\n\u003Cp>If you are updating from WPGraphQL for ACF v0.6.* or older, check out the \u003Ca href=\"https:\u002F\u002Facf.wpgraphql.com\u002Fupgrade-guide\" rel=\"nofollow ugc\">Upgrade Guide\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>For non-major version updates, automatic updates usually should work smoothly, but we still recommend you back up your site and test on a staging site.\u003C\u002Fp>\n\u003Cp>Before updating WPGraphQL for ACF, review the release notes on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwpgraphql-acf\u002Freleases\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>We follow Semantic Versioning (Semver) for meaningful releases:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>MAJOR\u003C\u002Fem> version for incompatible API changes,\u003C\u002Fli>\n\u003Cli>\u003Cem>MINOR\u003C\u002Fem> version for backwards-compatible functionality additions,\u003C\u002Fli>\n\u003Cli>\u003Cem>PATCH\u003C\u002Fem> version for backwards-compatible bug fixes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Learn more about Semver at \u003Ca href=\"https:\u002F\u002Fsemver.org\" rel=\"nofollow ugc\">semver.org\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql\u002Fdiscussions\" rel=\"nofollow ugc\">General Help Requests\u003C\u002Fa>: For general questions and help requests, create a new topic in Github Discussions\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.wpgraphql.com\u002Fdiscord\" rel=\"nofollow ugc\">Discord Community\u003C\u002Fa>: The WPGraphQL Discord is a great place to communicate in real-time. Ask questions, discuss features, get to know other folks using WPGraphQL.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql\u002Fissues\u002Fnew?assignees=&labels=&projects=&template=bug_report.yml\" rel=\"nofollow ugc\">Bug Reports\u003C\u002Fa>: Report a bug in WPGraphQL\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql\u002Fissues\u002Fnew?assignees=&labels=&projects=&template=feature_request.yml\" rel=\"nofollow ugc\">Feature Requests\u003C\u002Fa>: Suggest an idea, feature, or enhancement for WPGraphQL.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql\u002Fsecurity\u002Fadvisories\u002Fnew\" rel=\"nofollow ugc\">Report a Security Vulnerability\u003C\u002Fa>: Report a security vulnerability.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>FAQs\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Does this work with ACF Extended?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Yes! WPGraphQL for ACF allows you to query for (most) fields created with ACF Extended.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Can I filter and sort queries by ACF Fields using WPGraphQL for ACF?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>At this time WPGraphQL for ACF does not support filtering or sorting queries by ACF Fields. “Meta Queries” are often very expensive to execute, so we currently do not support filtering by ACF fields out of the box, but are exploring options for supporting it without the performance penalty.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>I think I found a bug, where do I report it?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>If you think you found a bug, please open an issue on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwpgraphql-acf\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>. The more details you provide in the issue, and the more clear your steps to reproduce are, the higher chances we will be able to help.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Can I use ACF Free or Pro with WPGraphQL for ACF?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Yes! WPGraphQL for ACF works great with ACF Free and Pro. The Pro version of ACF has some additional features, such as Flexible Content Fields, Repeater Fields and Options Pages that are supported by WPGraphQL for ACF.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Do I have to use Faust.js to use WPGraphQL for ACF?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>No! While \u003Ca href=\"https:\u002F\u002Fwww.wpgraphql.com\" rel=\"nofollow ugc\">wpgraphql.com\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Facf.wpgraphql.com\" rel=\"nofollow ugc\">acf.wpgraphql.com\u003C\u002Fa> are built using \u003Ca href=\"https:\u002F\u002Ffaustjs.org\u002F\" rel=\"nofollow ugc\">Faust.js\u003C\u002Fa> and Next.js, you can use WPGraphQL for ACF with any GraphQL client, including Apollo, Relay, Urql, etc.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>I have an ACF Extension that adds a new field type, will it work with WPGraphQL for ACF?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>WPGraphQL for ACF supports the field types that come with ACF (Free and PRO) as well as the field types in ACF Extended (Free and PRO). Support for additional field types can be added by using the “register_graphql_acf_field_type” API.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Do I need WPGraphQL and ACF to be active to use this?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This plugin is a “bridge” plugin that brings functionality of ACF to WPGraphQL. Both WPGraphQL and ACF need to be installed and active in your WordPress installation for this plugin to work.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How much does WPGraphQL for ACF cost?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>WPGraphQL for ACF is a FREE open-source plugin. The development is sponsored by \u003Ca href=\"https:\u002F\u002Fwpengine.com\u002Fatlas\" rel=\"nofollow ugc\">WP Engine Atlas\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Does WPGraphQL for ACF support GraphQL Mutations?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>GraphQL Mutations are not yet supported. We are working on adding support for Mutations in the future. We are waiting for the GraphQL “@oneOf” directive to be merged into the GraphQL spec before we add support for Mutations.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Does this work with Field Groups registered in PHP or JSON?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Yes! You can register ACF Field Groups and Fields using the Admin UI, PHP or JSON. WPGraphQL for ACF will detect the Field Groups and Fields and add them to the GraphQL Schema. If using PHP or JSON, you will need to set the “show_in_graphql” setting to “true” to expose the Field Group and Fields to the GraphQL Schema. There might be other settings that need attention at the field group or field level that might impact the schema or field resolution.\u003C\u002Fp>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>WPGraphQL for Advanced Custom Fields uses \u003Ca href=\"https:\u002F\u002Fappsero.com\" rel=\"nofollow ugc\">Appsero\u003C\u002Fa> SDK to collect telemetry data upon user confirmation, helping us troubleshoot problems and improve the product.\u003C\u002Fp>\n\u003Cp>The Appsero SDK \u003Cstrong>doesn’t collect data by default\u003C\u002Fstrong> and only starts gathering basic telemetry data when a user allows it via the admin notice. No data is collected without user consent.\u003C\u002Fp>\n\u003Cp>Learn more about how \u003Ca href=\"https:\u002F\u002Fappsero.com\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">Appsero collects and uses data\u003C\u002Fa>.\u003C\u002Fp>\n","WPGraphQL for ACF seamlessly integrates Advanced Custom Fields with WPGraphQL.",10000,84604,"2026-03-05T23:08:00.000Z","6.5.8","5.9","7.3",[18,112,113,21,114],"api","graphql","nextjs","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwpgraphql-acf.2.5.1.zip",{"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":108,"requires_at_least":129,"requires_php":74,"tags":130,"homepage":135,"download_link":136,"security_score":137,"vuln_count":59,"unpatched_count":11,"last_vuln_date":138,"fetched_at":61},"ilab-media-tools","Media Cloud for Bunny CDN, Amazon S3, Cloudflare R2, Google Cloud Storage, DigitalOcean and more","4.6.4","interfacelab","https:\u002F\u002Fprofiles.wordpress.org\u002Finterfacelab\u002F","\u003Cp>\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\u002F3tB3rKkwAJY?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>\u003C\u002Fp>\n\u003Cp>Media cloud is a revolutionary plug-in for WordPress that will supercharge the performance of your website and radically transform the way that you work with media in WordPress.\u003C\u002Fp>\n\u003Cp>Media Cloud works by moving your images, media and other files from your WordPress server to online cloud storage such as Amazon S3, Google Cloud Storage, DigitalOcean Spaces, DreamHost Object Storage and many others.  You can then serve that media through a CDN like Amazon Cloud front, Cloudflare, Fastly and others.\u003C\u002Fp>\n\u003Cp>Beyond cloud storage, Media Cloud also has deep integration with Imgix, the leading real-time image manipulation and optimization CDN.  Media Cloud is the first plugin for WordPress to bring the full benefit of what Imgix offers – simplifying your development efforts, reducing your site’s page load times and opening up creative options that simply haven’t existed until now.\u003C\u002Fp>\n\u003Cp>Media Cloud also provides advanced image editing tools that provide improved cropping options, effects, filters, watermarking and more.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>NOTE\u003C\u002Fstrong>: This plugin requires PHP 7.1 or higher\u003C\u002Fp>\n\u003Ch4>Upload to S3, Cloudflare R2, Minio, Google Cloud Storage, Digital Ocean Spaces, DreamHost Object Storage and others\u003C\u002Fh4>\n\u003Cp>Automatically copy media uploads to the cloud and serve them directly from your cloud storage provider, CloudFront or any other CDN.\u003C\u002Fp>\n\u003Ch4>Video Encoding with Mux\u003C\u002Fh4>\n\u003Cp>Upload videos and encode them nearly instantly to adaptive bitrate HLS that plays back smoothly and beautifully on any device regardless of bandwidth.  Requires an account with \u003Ca href=\"https:\u002F\u002Fmux.com\" rel=\"nofollow ugc\">Mux\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Integrate with Imgix\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fimgix.com\" rel=\"nofollow ugc\">Imgix\u003C\u002Fa> will radically change the way that you build your WordPress sites and themes.  This plugin is the best integration available for WordPress.  Upload your images to S3 with our S3 tool and then host the media with Imgix, providing you with real-time image processing and automatic format delivery.  Forget ImageMagick, Imgix is light years ahead in quality and speed.\u003C\u002Fp>\n\u003Ch4>Native support for Google Cloud Storage\u003C\u002Fh4>\n\u003Cp>Now supports using Google Cloud Storage for uploads without having to use Google’s S3 compatible interop mode.\u003C\u002Fp>\n\u003Ch4>Automatically Tag, Categorize and Caption with Amazon Rekognition\u003C\u002Fh4>\n\u003Cp>Use Amazon’s latest AI tools to tag and categorize your images when uploading to Amazon S3.  With Rekognition, you can automatically detect objects, scenes, and faces in images.\u003C\u002Fp>\n\u003Ch4>Advanced Image Editing\u003C\u002Fh4>\n\u003Cp>When integrating with \u003Ca href=\"https:\u002F\u002Fimgix.com\" rel=\"nofollow ugc\">Imgix\u003C\u002Fa>, Media Cloud by ILAB provides the most advanced WordPress image editor.  Alter contrast, saturation, vibrancy and over 30 other image editing operations – in real time right inside the WordPress admin interface!  Completely non-destructive!\u003C\u002Fp>\n\u003Ch4>Image Cropping\u003C\u002Fh4>\n\u003Cp>Media Cloud by ILAB ships with the most advanced image cropping tool available for WordPress, based on Chen Fengyuan’s amazing Cropper plugin for jQuery.\u003C\u002Fp>\n\u003Ch4>Compatible With Leading Image Optimizers\u003C\u002Fh4>\n\u003Cp>Compatible with Short Pixel, EWWW, Smush and Imagify image optimization plugins!\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Upload to any of a variety of cloud storage providers (Amazon S3, Cloudflare R2, Google Cloud Storage, Minio, Backblaze, DigitalOcean Spaces or any other S3 compatible service)\u003C\u002Fli>\n\u003Cli>Host your media directly from your cloud storage provider or specify a CDN\u003C\u002Fli>\n\u003Cli>Integrate with Imgix media hosting\u003C\u002Fli>\n\u003Cli>Use Amazon Rekognition to automatically tag and categorize images\u003C\u002Fli>\n\u003Cli>Use third party cloud file providers that use S3 compatible APIs\u003C\u002Fli>\n\u003Cli>Advanced image cropping tool\u003C\u002Fli>\n\u003Cli>Advanced image editing with saturation, contrast, auto-correct,\u003Cbr \u002F>\nsharpen, blur and more (only when integrated with Imgix)\u003C\u002Fli>\n\u003Cli>Automatically import your settings from WP Offload Media and WP-Stateless\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Premium Upgrade with Improved Support Options and More Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Built-in image optimization using leading image optimization services like ShortPixel, TinyPNG, Imagify and Kraken.io.  No more third party plugins needed because it’s built into Media Cloud’s process.\u003C\u002Fli>\n\u003Cli>Advanced security for encoded videos and a feature rich video player\u003C\u002Fli>\n\u003Cli>Easily import your existing media library with the push of a button\u003C\u002Fli>\n\u003Cli>WP-CLI support: Import your media library to the cloud, regenerate thumbnails and process your library with Amazon Rekognition using WP-CLI commands.\u003C\u002Fli>\n\u003Cli>Direct uploads integrated directly into WordPress’s media library\u003C\u002Fli>\n\u003Cli>Cloud storage browser that allows you to import media to your media library from the cloud\u003C\u002Fli>\n\u003Cli>WPML, WooCommerce and Easy Digital Downloads integration\u003C\u002Fli>\n\u003Cli>Blubrry Pod Casting, Ultimate Membership integrations\u003C\u002Fli>\n\u003Cli>Push\u002Fpull your CSS and JS assets to the cloud and serve them from a CDN\u003C\u002Fli>\n\u003Cli>Use Google Cloud Vision as a computer vision provider\u003C\u002Fli>\n\u003Cli>Image size manager\u003C\u002Fli>\n\u003Cli>Network level multisite support\u003C\u002Fli>\n\u003Cli>and more!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fmediacloud.press\u002Fcomparison\u002F\" rel=\"nofollow ugc\">Compare the premium plans\u003C\u002Fa>\u003C\u002Fp>\n","Automatically store media on Amazon S3, Cloudflare R2, Google Cloud Storage, DigitalOcean Spaces + others. Serve CSS\u002FJS assets through CDNs.",7000,539664,70,116,"2024-04-09T11:12:00.000Z","4.9",[131,132,20,133,134],"amazon","bunnycdn","offload","s3","https:\u002F\u002Fgithub.com\u002Finterfacelab\u002Filab-media-tools","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Filab-media-tools.4.6.4.zip",92,"2024-03-25 00:00:00",{"attackSurface":140,"codeSignals":220,"taintFlows":267,"riskAssessment":431,"analyzedAt":443},{"hooks":141,"ajaxHandlers":191,"restRoutes":216,"shortcodes":217,"cronEvents":218,"entryPointCount":219,"unprotectedCount":219},[142,148,152,154,157,159,164,168,172,176,182,186],{"type":143,"name":144,"callback":145,"file":146,"line":147},"action","plugins_loaded","anonymous","images-sync-for-cloudflare.php",171,{"type":143,"name":149,"callback":145,"priority":150,"file":146,"line":151},"cfimg_sync_single",10,190,{"type":143,"name":144,"callback":145,"file":146,"line":153},203,{"type":143,"name":155,"callback":145,"file":146,"line":156},"rest_api_init",228,{"type":143,"name":144,"callback":145,"file":146,"line":158},240,{"type":143,"name":160,"callback":161,"file":162,"line":163},"admin_menu","register_menu","src\\Admin\\AdminMenu.php",26,{"type":143,"name":165,"callback":166,"file":162,"line":167},"admin_enqueue_scripts","enqueue_assets",27,{"type":143,"name":169,"callback":170,"file":162,"line":171},"admin_notices","maybe_show_config_warning",28,{"type":143,"name":173,"callback":174,"file":162,"line":175},"wp_dashboard_setup","register_dashboard_widget",29,{"type":143,"name":177,"callback":178,"priority":179,"file":180,"line":181},"acf\u002Fsave_post","on_acf_save_post",999,"src\\Core\\Hooks.php",82,{"type":143,"name":183,"callback":184,"priority":179,"file":180,"line":185},"wp_after_insert_post","closure",88,{"type":143,"name":187,"callback":188,"priority":150,"file":189,"line":190},"cfimg_bulk_sync","process","src\\Jobs\\BulkEnqueuer.php",32,[192,197,200,204,208,212],{"action":193,"nopriv":194,"callback":195,"hasNonce":194,"hasCapCheck":194,"file":162,"line":196},"cfimg_meta_keys",false,"ajax_meta_keys",33,{"action":198,"nopriv":194,"callback":199,"hasNonce":194,"hasCapCheck":194,"file":162,"line":47},"cfimg_acf_fields","ajax_acf_fields",{"action":201,"nopriv":194,"callback":202,"hasNonce":194,"hasCapCheck":194,"file":162,"line":203},"cfimg_test_mapping","ajax_test_mapping",35,{"action":205,"nopriv":194,"callback":206,"hasNonce":194,"hasCapCheck":194,"file":162,"line":207},"cfimg_flex_test","ajax_flex_test",38,{"action":209,"nopriv":194,"callback":210,"hasNonce":194,"hasCapCheck":194,"file":162,"line":211},"cfimg_flex_enable","ajax_flex_enable",39,{"action":213,"nopriv":194,"callback":214,"hasNonce":194,"hasCapCheck":194,"file":162,"line":215},"cfimg_validate_attachment","ajax_validate_attachment",42,[],[],[],6,{"dangerousFunctions":221,"sqlUsage":222,"outputEscaping":224,"fileOperations":59,"externalRequests":263,"nonceChecks":264,"capabilityChecks":265,"bundledLibraries":266},[],{"prepared":219,"raw":11,"locations":223},[],{"escaped":225,"rawEcho":226,"locations":227},199,16,[228,232,234,236,238,240,243,245,247,249,251,253,255,257,259,261],{"file":229,"line":230,"context":231},"src\\Admin\\MappingsPage.php",732,"raw output",{"file":229,"line":233,"context":231},750,{"file":229,"line":235,"context":231},768,{"file":229,"line":237,"context":231},780,{"file":229,"line":239,"context":231},928,{"file":241,"line":242,"context":231},"src\\Admin\\PreviewPage.php",279,{"file":241,"line":244,"context":231},287,{"file":241,"line":246,"context":231},298,{"file":241,"line":248,"context":231},304,{"file":241,"line":250,"context":231},305,{"file":241,"line":252,"context":231},308,{"file":241,"line":254,"context":231},478,{"file":241,"line":256,"context":231},518,{"file":241,"line":258,"context":231},540,{"file":241,"line":260,"context":231},542,{"file":241,"line":262,"context":231},548,8,18,17,[],[268,292,306,331,343,354,367,376,385,397,409,421],{"entryPoint":269,"graph":270,"unsanitizedCount":59,"severity":291},"handle_save (src\\Admin\\MappingsPage.php:148)",{"nodes":271,"edges":288},[272,277,281],{"id":273,"type":274,"label":275,"file":229,"line":276},"n0","source","$_POST",204,{"id":278,"type":279,"label":280,"file":229,"line":276},"n1","transform","→ update()",{"id":282,"type":283,"label":284,"file":285,"line":286,"wp_function":287},"n2","sink","update_option() [Settings Manipulation]","src\\Repos\\SettingsRepo.php",84,"update_option",[289,290],{"from":273,"to":278,"sanitized":194},{"from":278,"to":282,"sanitized":194},"low",{"entryPoint":293,"graph":294,"unsanitizedCount":11,"severity":291},"ajax_meta_keys (src\\Admin\\MappingsPage.php:269)",{"nodes":295,"edges":303},[296,299],{"id":273,"type":274,"label":297,"file":229,"line":298},"$_GET",277,{"id":278,"type":283,"label":300,"file":229,"line":301,"wp_function":302},"get_col() [SQLi]",293,"get_col",[304],{"from":273,"to":278,"sanitized":305},true,{"entryPoint":307,"graph":308,"unsanitizedCount":59,"severity":291},"\u003CMappingsPage> (src\\Admin\\MappingsPage.php:0)",{"nodes":309,"edges":326},[310,311,312,315,320,322,324],{"id":273,"type":274,"label":297,"file":229,"line":298},{"id":278,"type":283,"label":300,"file":229,"line":301,"wp_function":302},{"id":282,"type":274,"label":313,"file":229,"line":314},"$_POST (x2)",443,{"id":316,"type":283,"label":317,"file":229,"line":318,"wp_function":319},"n3","echo() [XSS]",797,"echo",{"id":321,"type":274,"label":275,"file":229,"line":276},"n4",{"id":323,"type":279,"label":280,"file":229,"line":276},"n5",{"id":325,"type":283,"label":284,"file":285,"line":286,"wp_function":287},"n6",[327,328,329,330],{"from":273,"to":278,"sanitized":305},{"from":282,"to":316,"sanitized":305},{"from":321,"to":323,"sanitized":194},{"from":323,"to":325,"sanitized":194},{"entryPoint":332,"graph":333,"unsanitizedCount":59,"severity":291},"handle_actions (src\\Admin\\PresetsPage.php:46)",{"nodes":334,"edges":340},[335,338,339],{"id":273,"type":274,"label":275,"file":336,"line":337},"src\\Admin\\PresetsPage.php",111,{"id":278,"type":279,"label":280,"file":336,"line":337},{"id":282,"type":283,"label":284,"file":285,"line":286,"wp_function":287},[341,342],{"from":273,"to":278,"sanitized":194},{"from":278,"to":282,"sanitized":194},{"entryPoint":344,"graph":345,"unsanitizedCount":11,"severity":291},"render (src\\Admin\\PresetsPage.php:133)",{"nodes":346,"edges":352},[347,350],{"id":273,"type":274,"label":348,"file":336,"line":349},"$_GET (x3)",144,{"id":278,"type":283,"label":317,"file":336,"line":351,"wp_function":319},159,[353],{"from":273,"to":278,"sanitized":305},{"entryPoint":355,"graph":356,"unsanitizedCount":59,"severity":291},"\u003CPresetsPage> (src\\Admin\\PresetsPage.php:0)",{"nodes":357,"edges":363},[358,359,360,361,362],{"id":273,"type":274,"label":348,"file":336,"line":349},{"id":278,"type":283,"label":317,"file":336,"line":351,"wp_function":319},{"id":282,"type":274,"label":275,"file":336,"line":337},{"id":316,"type":279,"label":280,"file":336,"line":337},{"id":321,"type":283,"label":284,"file":285,"line":286,"wp_function":287},[364,365,366],{"from":273,"to":278,"sanitized":305},{"from":282,"to":316,"sanitized":194},{"from":316,"to":321,"sanitized":194},{"entryPoint":368,"graph":369,"unsanitizedCount":11,"severity":291},"render_attachment_mode (src\\Admin\\PreviewPage.php:162)",{"nodes":370,"edges":374},[371,373],{"id":273,"type":274,"label":297,"file":241,"line":372},163,{"id":278,"type":283,"label":317,"file":241,"line":147,"wp_function":319},[375],{"from":273,"to":278,"sanitized":305},{"entryPoint":377,"graph":378,"unsanitizedCount":11,"severity":291},"render_post_mode (src\\Admin\\PreviewPage.php:238)",{"nodes":379,"edges":383},[380,381],{"id":273,"type":274,"label":297,"file":241,"line":158},{"id":278,"type":283,"label":317,"file":241,"line":382,"wp_function":319},253,[384],{"from":273,"to":278,"sanitized":305},{"entryPoint":386,"graph":387,"unsanitizedCount":11,"severity":291},"ajax_validate_attachment (src\\Admin\\PreviewPage.php:402)",{"nodes":388,"edges":395},[389,391],{"id":273,"type":274,"label":275,"file":241,"line":390},410,{"id":278,"type":283,"label":392,"file":241,"line":393,"wp_function":394},"get_results() [SQLi]",434,"get_results",[396],{"from":273,"to":278,"sanitized":305},{"entryPoint":398,"graph":399,"unsanitizedCount":11,"severity":291},"\u003CPreviewPage> (src\\Admin\\PreviewPage.php:0)",{"nodes":400,"edges":406},[401,403,404,405],{"id":273,"type":274,"label":402,"file":241,"line":372},"$_GET (x2)",{"id":278,"type":283,"label":317,"file":241,"line":147,"wp_function":319},{"id":282,"type":274,"label":275,"file":241,"line":390},{"id":316,"type":283,"label":392,"file":241,"line":393,"wp_function":394},[407,408],{"from":273,"to":278,"sanitized":305},{"from":282,"to":316,"sanitized":305},{"entryPoint":410,"graph":411,"unsanitizedCount":59,"severity":291},"save_from_post (src\\Admin\\SettingsPage.php:112)",{"nodes":412,"edges":418},[413,416,417],{"id":273,"type":274,"label":275,"file":414,"line":415},"src\\Admin\\SettingsPage.php",136,{"id":278,"type":279,"label":280,"file":414,"line":415},{"id":282,"type":283,"label":284,"file":285,"line":286,"wp_function":287},[419,420],{"from":273,"to":278,"sanitized":194},{"from":278,"to":282,"sanitized":194},{"entryPoint":422,"graph":423,"unsanitizedCount":59,"severity":291},"\u003CSettingsPage> (src\\Admin\\SettingsPage.php:0)",{"nodes":424,"edges":428},[425,426,427],{"id":273,"type":274,"label":275,"file":414,"line":415},{"id":278,"type":279,"label":280,"file":414,"line":415},{"id":282,"type":283,"label":284,"file":285,"line":286,"wp_function":287},[429,430],{"from":273,"to":278,"sanitized":194},{"from":278,"to":282,"sanitized":194},{"summary":432,"deductions":433},"The \"images-sync-for-cloudflare\" plugin v1.0.8 exhibits a concerning security posture primarily due to a significant number of unprotected AJAX handlers. While the plugin demonstrates good practices in other areas, such as the exclusive use of prepared statements for SQL queries and a high percentage of properly escaped output, the unprotected AJAX endpoints represent a substantial attack surface. The taint analysis shows unsanitized paths in 6 flows, which, while not classified as critical or high severity in this specific analysis, warrants attention given the lack of authentication on the AJAX handlers.\n\nThe plugin's vulnerability history is clean, with no recorded CVEs. This absence of known vulnerabilities is a positive indicator, suggesting either robust development or limited historical scrutiny. However, it does not mitigate the immediate risks identified in the static analysis. The presence of file operations and external HTTP requests, combined with unprotected entry points, could potentially be exploited if an attacker can leverage an unsanitized path to influence these actions.\n\nIn conclusion, while the \"images-sync-for-cloudflare\" plugin has strengths in its SQL handling and output escaping, the security weaknesses are pronounced. The primary concern is the high number of unprotected AJAX handlers, which, coupled with the identified unsanitized paths, creates a clear risk of unauthorized actions or data manipulation. The lack of a known vulnerability history should not lead to complacency, and addressing the unprotected AJAX endpoints is crucial for improving its overall security.",[434,436,438,441],{"reason":435,"points":150},"AJAX handlers without auth checks",{"reason":437,"points":263},"Flows with unsanitized paths",{"reason":439,"points":440},"File operations found",3,{"reason":442,"points":440},"External HTTP requests found","2026-03-17T05:49:27.142Z",{"wat":445,"direct":462},{"assetPaths":446,"generatorPatterns":453,"scriptPaths":454,"versionParams":455},[447,448,449,450,451,452],"\u002Fwp-content\u002Fplugins\u002Fimages-sync-for-cloudflare\u002Fassets\u002Fcss\u002Fadmin-styles.css","\u002Fwp-content\u002Fplugins\u002Fimages-sync-for-cloudflare\u002Fassets\u002Fjs\u002Fadmin-scripts.js","\u002Fwp-content\u002Fplugins\u002Fimages-sync-for-cloudflare\u002Fassets\u002Fjs\u002Fmapping-form.js","\u002Fwp-content\u002Fplugins\u002Fimages-sync-for-cloudflare\u002Fassets\u002Fjs\u002Fpreview-page.js","\u002Fwp-content\u002Fplugins\u002Fimages-sync-for-cloudflare\u002Fassets\u002Fjs\u002Fsettings-form.js","\u002Fwp-content\u002Fplugins\u002Fimages-sync-for-cloudflare\u002Fassets\u002Fjs\u002Fvendor\u002Fvue.js",[],[448,449,450,451,452],[456,457,458,459,460,461],"images-sync-for-cloudflare\u002Fassets\u002Fcss\u002Fadmin-styles.css?ver=","images-sync-for-cloudflare\u002Fassets\u002Fjs\u002Fadmin-scripts.js?ver=","images-sync-for-cloudflare\u002Fassets\u002Fjs\u002Fmapping-form.js?ver=","images-sync-for-cloudflare\u002Fassets\u002Fjs\u002Fpreview-page.js?ver=","images-sync-for-cloudflare\u002Fassets\u002Fjs\u002Fsettings-form.js?ver=","images-sync-for-cloudflare\u002Fassets\u002Fjs\u002Fvendor\u002Fvue.js?ver=",{"cssClasses":463,"htmlComments":469,"htmlAttributes":471,"restEndpoints":476,"jsGlobals":480,"shortcodeOutput":482},[464,465,466,467,468],"cfimg-admin-menu","cfimg-mappings-page","cfimg-settings-page","cfimg-preview-page","cfimg-dashboard-widget",[470],"\u003C!-- TODO: Remove this cfi_ → cfimg_ migration block after acceptance into the WP.org repository. -->",[472,473,474,475],"data-cfimg-mapping-id","data-cfimg-meta-key","data-cfimg-field-key","data-cfimg-test-url",[477,478,479],"\u002Fwp-json\u002Fcfimg\u002Fv1\u002Fmappings","\u002Fwp-json\u002Fcfimg\u002Fv1\u002Fsettings","\u002Fwp-json\u002Fcfimg\u002Fv1\u002Fsync",[481],"cfimg_admin_params",[]]