{"id":304381,"date":"2026-05-04T23:13:08","date_gmt":"2026-05-04T23:13:08","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pics-to-webp\/"},"modified":"2026-05-09T02:11:51","modified_gmt":"2026-05-09T02:11:51","slug":"manly-webp-converter","status":"publish","type":"plugin","link":"https:\/\/sk.wordpress.org\/plugins\/manly-webp-converter\/","author":7482918,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.2","stable_tag":"1.0.2","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Manly WebP Converter","header_author":"Manly Electronics","header_description":"Converts product images to WebP format, updates DB references, optionally deletes originals.","assets_banners_color":"f0f0f1","last_updated":"2026-05-09 02:11:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/manlyelectronics.com.au","rating":0,"author_block_rating":0,"active_installs":0,"downloads":61,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"DimitriAus","date":"2026-05-09 02:11:51"}},"upgrade_notice":{"1.0.1":"<p>Readme improvements only. No code changes.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3522783,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3522783,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[29161,84,15376,286],"plugin_category":[45,50],"plugin_contributors":[253003],"plugin_business_model":[],"class_list":["post-304381","plugin","type-plugin","status-publish","hentry","plugin_tags-image-optimization","plugin_tags-media","plugin_tags-webp","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-media","plugin_contributors-dimitriaus","plugin_committers-dimitriaus"],"banners":{"banner":"https:\/\/ps.w.org\/manly-webp-converter\/assets\/banner-772x250.png?rev=3522783","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/manly-webp-converter\/assets\/icon-256x256.png?rev=3522783","icon_2x":"https:\/\/ps.w.org\/manly-webp-converter\/assets\/icon-256x256.png?rev=3522783","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Manly WebP Converter converting images to the modern WebP format. For example, a shop with 1,000 products can see overall storage drop from around 15 GB to 6 GB. Page load times are reduced proportionally.<\/p>\n\n<p>Features:\n- Convert images for one WooCommerce product or all media images.\n- Keep originals during testing or delete originals after conversion.\n- Updates attachment metadata and content references in posts, pages, and all other post types.\n- Shows progress, logs, and total bytes saved.\n- Adjustable WebP image quality \u2014 test on a single page or product first and verify picture quality visually before converting your entire library.\n- Conversion of thousands of pictures may take hours; you can stop at any time by clicking the Stop button and resume later by clicking Start again \u2014 already-converted images are skipped automatically. Refreshing or closing the page is also safe: each image is saved to disk as it is processed, so starting again after a page refresh will continue from where the conversion left off.<\/p>\n\n<h4>Requirements<\/h4>\n\n<p>This plugin requires the PHP <strong>GD<\/strong> extension, which is usually included with standard PHP installations. If GD is not already active on your server, it can be enabled in <strong>cPanel \u2192 PHP Configuration<\/strong> with a single tick.<\/p>\n\n<h4>Conversion Modes<\/h4>\n\n<p>Both modes convert attachments stored in the media library. The difference is scope:<\/p>\n\n<ul>\n<li><strong>Single Product<\/strong> \u2014 reads the featured image and gallery post meta of the chosen WooCommerce product and converts only those linked attachments.<\/li>\n<li><strong>All Images<\/strong> \u2014 queries every JPEG, PNG, and GIF attachment in the entire media library, regardless of whether it is attached to a product.<\/li>\n<\/ul>\n\n<p>After each conversion, the plugin searches <code>post_content<\/code> and <code>post_excerpt<\/code> across every post type (posts, pages, products, custom post types) and rewrites both full URLs and path-only references. It does <strong>not<\/strong> update image URLs stored in post meta or custom fields (e.g. page-builder block attributes saved outside the content column).<\/p>\n\n<p><strong>WooCommerce product images are safe<\/strong> because featured images and gallery images are stored as attachment IDs, not URLs \u2014 WordPress resolves them dynamically from the updated attachment record.<\/p>\n\n<p><strong>Warning: page builders and URL-based custom fields.<\/strong> Tools such as Elementor, Divi, Beaver Builder, and ACF (when set to return a URL) store image URLs directly in post meta. These are not rewritten by this plugin. If you then delete the original files, any such stale URL will point to a missing file and cause broken images on the front end.<\/p>\n\n<p><strong>Recommended workflow:<\/strong>\n1. Run the conversion with <strong>Keep Originals enabled<\/strong>.\n2. Check your site visually \u2014 especially pages built with a page builder.\n3. Only disable Keep Originals (to delete originals) once you are confident no post meta or theme option holds a raw image URL that has not been updated.<\/p>\n\n<h3>Additional Information<\/h3>\n\n<p>This plugin is primarily designed for WooCommerce stores. While the All Images mode covers the entire media library, the core workflow and Single Product mode are built around WooCommerce product images. More detailed guidance will be added in a future update.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to the \/wp-content\/plugins\/ directory.<\/li>\n<li>Activate the plugin through the Plugins menu in WordPress.<\/li>\n<li>Go to Tools &gt; Manly WebP Converter.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20gd%20webp%20support%3F\"><h3>Does this require GD WebP support?<\/h3><\/dt>\n<dd><p>Yes. The server must support imagewebp() via the PHP GD extension.<\/p><\/dd>\n<dt id=\"can%20i%20keep%20original%20files%3F\"><h3>Can I keep original files?<\/h3><\/dt>\n<dd><p>Yes. Enable Keep Originals in the tool before conversion.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Updated readme with conversion mode details, content reference scope, and page-builder warning.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Reduces server space and page load times by converting WordPress and WooCommerce images to WebP format.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/304381","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=304381"}],"author":[{"embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dimitriaus"}],"wp:attachment":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=304381"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=304381"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=304381"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=304381"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=304381"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=304381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}