{"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-04T23:18:41","modified_gmt":"2026-05-04T23:18:41","slug":"manly-webp-converter","status":"publish","type":"plugin","link":"https:\/\/bs.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-04 23:18:41","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":35,"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-04 23:18:41"}},"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 converts product images and media library files to WebP.<\/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.<\/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":"Converts product and media images to WebP format, updates references, and can optionally remove original files.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/304381","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=304381"}],"author":[{"embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dimitriaus"}],"wp:attachment":[{"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=304381"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=304381"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=304381"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=304381"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=304381"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=304381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}