{"id":257102,"date":"2025-10-23T03:03:26","date_gmt":"2025-10-23T03:03:26","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/andw-image-control\/"},"modified":"2025-10-23T03:04:43","modified_gmt":"2025-10-23T03:04:43","slug":"andw-image-control","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/andw-image-control\/","author":23371466,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.5.1","stable_tag":"0.5.1","tested":"6.8.5","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"andW Image Control","header_author":"yasuo3o3","header_description":"\u753b\u50cf\u54c1\u8cea\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3001PNG\u2192JPEG\u81ea\u52d5\u5909\u63db\u3001\u72ec\u81ea\u753b\u50cf\u30b5\u30a4\u30ba\u7ba1\u7406\u3001SVG\u5bfe\u5fdc\u3001\u30e1\u30c7\u30a3\u30a2\u30e9\u30a4\u30d6\u30e9\u30eaUI\u62e1\u5f35\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002","assets_banners_color":"7b867c","last_updated":"2025-10-23 03:04:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/yasuo-o.xyz\/","rating":0,"author_block_rating":0,"active_installs":10,"downloads":192,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.5.1":{"tag":"0.5.1","author":"yasuo3o3","date":"2025-10-23 03:04:43"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3383012,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3383009,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3383011,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3383010,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.5.1"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[17209,55894,6580,84,2194],"plugin_category":[50],"plugin_contributors":[249015],"plugin_business_model":[],"class_list":["post-257102","plugin","type-plugin","status-publish","hentry","plugin_tags-compression","plugin_tags-image-quality","plugin_tags-jpeg","plugin_tags-media","plugin_tags-png","plugin_category-media","plugin_contributors-yasuo3o3","plugin_committers-yasuo3o3"],"banners":{"banner":"https:\/\/ps.w.org\/andw-image-control\/assets\/banner-772x250.png?rev=3383010","banner_2x":"https:\/\/ps.w.org\/andw-image-control\/assets\/banner-1544x500.png?rev=3383011","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/andw-image-control\/assets\/icon-128x128.png?rev=3383012","icon_2x":"https:\/\/ps.w.org\/andw-image-control\/assets\/icon-256x256.png?rev=3383009","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>andW Image Control extends WordPress image processing capabilities with comprehensive media management features.<\/p>\n\n<p><strong>Key Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Custom JPEG Quality:<\/strong> Set different JPEG quality levels for each image size<\/li>\n<li><strong>PNG to JPEG Conversion:<\/strong> Automatic conversion during upload with quality control<\/li>\n<li><strong>8 Custom Image Sizes:<\/strong> Pre-configured sizes (360px, 480px, 600px, 720px, 960px, 1200px, 1440px, 1920px)<\/li>\n<li><strong>Enhanced Media Library:<\/strong> MIME type labels and improved UI<\/li>\n<li><strong>Secure SVG Support:<\/strong> Upload SVG files with comprehensive security sanitization<\/li>\n<li><strong>WordPress Standards Compliance:<\/strong> Follows WordPress coding and security standards<\/li>\n<\/ul>\n\n<p>This plugin is designed for developers and site administrators who need precise control over image processing and media management.<\/p>\n\n<p><strong>\u65e5\u672c\u8a9e\u8aac\u660e:<\/strong><\/p>\n\n<p>andW Image Control \u306f WordPress \u306e\u753b\u50cf\u51e6\u7406\u3092\u62e1\u5f35\u3059\u308b\u30d7\u30e9\u30b0\u30a4\u30f3\u3067\u3059\u3002JPEG\u54c1\u8cea\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3001PNG\u2192JPEG\u81ea\u52d5\u5909\u63db\u3001\u72ec\u81ea\u753b\u50cf\u30b5\u30a4\u30ba\u7ba1\u7406\u3001SVG\u5bfe\u5fdc\u3001\u30e1\u30c7\u30a3\u30a2\u30e9\u30a4\u30d6\u30e9\u30eaUI\u62e1\u5f35\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/andw-image-control<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress<\/li>\n<li>Go to Settings &gt; Media to configure the plugin options<\/li>\n<li>Adjust JPEG quality settings, enable PNG to JPEG conversion, and configure SVG upload as needed<\/li>\n<\/ol>\n\n<p><strong>Installation (\u65e5\u672c\u8a9e):<\/strong><\/p>\n\n<ol>\n<li>\u30d7\u30e9\u30b0\u30a4\u30f3\u30d5\u30a1\u30a4\u30eb\u3092 <code>\/wp-content\/plugins\/andw-image-control<\/code> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9<\/li>\n<li>WordPress \u306e\u7ba1\u7406\u753b\u9762\u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u6709\u52b9\u5316<\/li>\n<li>\u300c\u8a2d\u5b9a\u300d&gt;\u300c\u30e1\u30c7\u30a3\u30a2\u300d\u3067\u5404\u7a2e\u8a2d\u5b9a\u3092\u8abf\u6574<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='what%20jpeg%20quality%20range%20can%20i%20set%3F'><h3>What JPEG quality range can I set?<\/h3><\/dt>\n<dd><p>You can set JPEG quality from 1 to 100. WordPress default is 82.<\/p><\/dd>\n<dt id='are%20png%20transparency%20preserved%20during%20conversion%3F'><h3>Are PNG transparency preserved during conversion?<\/h3><\/dt>\n<dd><p>No, transparency is not preserved. PNG files are converted with white background. Original PNG files are also retained.<\/p><\/dd>\n<dt id='is%20svg%20upload%20secure%3F'><h3>Is SVG upload secure?<\/h3><\/dt>\n<dd><p>Yes, SVG files are sanitized using WordPress standard wp_kses() function with comprehensive security checks to prevent XSS and XXE attacks.<\/p><\/dd>\n<dt id='does%20this%20plugin%20affect%20site%20performance%3F'><h3>Does this plugin affect site performance?<\/h3><\/dt>\n<dd><p>The plugin is optimized for performance and only processes images during upload. It uses singleton patterns and proper WordPress hooks to minimize overhead.<\/p>\n\n<p><strong>FAQ (\u65e5\u672c\u8a9e):<\/strong><\/p><\/dd>\n<dt id='jpeg%20%E5%93%81%E8%B3%AA%E3%81%AF%E3%81%A9%E3%81%AE%E7%A8%8B%E5%BA%A6%E8%A8%AD%E5%AE%9A%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F'><h3>JPEG \u54c1\u8cea\u306f\u3069\u306e\u7a0b\u5ea6\u8a2d\u5b9a\u3067\u304d\u307e\u3059\u304b\uff1f<\/h3><\/dt>\n<dd><p>1\u304b\u3089100\u306e\u7bc4\u56f2\u3067\u8a2d\u5b9a\u3067\u304d\u307e\u3059\u3002WordPress\u6a19\u6e96\u306f82\u3067\u3059\u3002<\/p><\/dd>\n<dt id='png%20%E3%81%8B%E3%82%89%20jpeg%20%E3%81%B8%E3%81%AE%E5%A4%89%E6%8F%9B%E3%81%A7%E9%80%8F%E9%81%8E%E3%81%AF%E4%BF%9D%E6%8C%81%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F'><h3>PNG \u304b\u3089 JPEG \u3078\u306e\u5909\u63db\u3067\u900f\u904e\u306f\u4fdd\u6301\u3055\u308c\u307e\u3059\u304b\uff1f<\/h3><\/dt>\n<dd><p>\u900f\u904e\u306f\u4fdd\u6301\u3055\u308c\u305a\u3001\u767d\u80cc\u666f\u3067\u5857\u308a\u3064\u3076\u3055\u308c\u307e\u3059\u3002\u5143\u306ePNG\u30d5\u30a1\u30a4\u30eb\u3082\u4fdd\u6301\u3055\u308c\u307e\u3059\u3002<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5.0<\/h4>\n\n<ul>\n<li><strong>Major<\/strong>: WordPress Plugin Directory review compliance completed with comprehensive code quality improvements<\/li>\n<li><strong>Security<\/strong>: Enhanced security measures including proper nonce handling, permission checks, and output escaping<\/li>\n<li><strong>Performance<\/strong>: Optimized autoload settings and reduced unnecessary database operations<\/li>\n<li><strong>i18n<\/strong>: Complete internationalization support with all user-facing strings properly translatable<\/li>\n<li><strong>Fixed<\/strong>: JavaScript localization timing issues resolved for better browser compatibility<\/li>\n<li><strong>Enhanced<\/strong>: Improved recommended quality values system with better user experience<\/li>\n<li><strong>Cleanup<\/strong>: Removed wp_cache_flush() from uninstall process to prevent site-wide cache disruption<\/li>\n<li><strong>Quality<\/strong>: All WPCS compliance issues resolved and code follows WordPress best practices<\/li>\n<\/ul>\n\n<h4>0.3.4<\/h4>\n\n<ul>\n<li><strong>Performance<\/strong>: Fixed autoload optimization to run only once using migration flag instead of every page load<\/li>\n<li><strong>Enhanced<\/strong>: Added andw_autoload_migration_done flag to prevent unnecessary database operations<\/li>\n<li><strong>Fixed<\/strong>: Improved uninstall.php to properly clean up migration flag during plugin removal<\/li>\n<\/ul>\n\n<h4>0.3.3<\/h4>\n\n<ul>\n<li><strong>Critical<\/strong>: Fixed wp_localize_script timing issue that caused JavaScript errors in recommended values feature<\/li>\n<li><strong>Fixed<\/strong>: Replaced wp_localize_script with inline translated strings to ensure proper availability in admin_footer context<\/li>\n<li><strong>Enhanced<\/strong>: Improved JavaScript error handling and browser console compatibility for settings page<\/li>\n<\/ul>\n\n<h4>0.3.2<\/h4>\n\n<ul>\n<li><strong>Critical<\/strong>: Removed wp_cache_flush() from uninstall.php to prevent site-wide cache disruption (WordPress.org compliance)<\/li>\n<li><strong>Major<\/strong>: Implemented i18n for JavaScript notification messages using wp_localize_script<\/li>\n<li><strong>Major<\/strong>: Added translation support for MIME type labels (JPG, PNG, GIF, SVG, WebP, Other)<\/li>\n<li><strong>Fixed<\/strong>: PNG to JPEG conversion title now uses translatable sprintf format instead of hardcoded English<\/li>\n<li><strong>Fixed<\/strong>: Plugin recommendation links (Regenerate Thumbnails, Force Regenerate Thumbnails) now translatable<\/li>\n<li><strong>Enhanced<\/strong>: Complete i18n compliance for WordPress Plugin Directory submission<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li><strong>Major<\/strong>: Added recommended quality values button for easy optimal settings application<\/li>\n<li><strong>Major<\/strong>: Improved user experience with visual feedback and guided quality configuration<\/li>\n<li><strong>Enhanced<\/strong>: Quality settings now use recommended values system instead of ineffective defaults<\/li>\n<li><strong>Fixed<\/strong>: Removed meaningless default values that were never applied due to WordPress initialization order<\/li>\n<li><strong>Changed<\/strong>: Author information updated to match WordPress.org submission requirements<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li><strong>Critical<\/strong>: Fixed WordPress.DB.DirectDatabaseQuery violations in uninstall.php (replaced with WordPress API)<\/li>\n<li><strong>Major<\/strong>: Enhanced AJAX security with upload_files permission checks<\/li>\n<li><strong>Major<\/strong>: Improved CSS\/JS versioning with filemtime-based cache control<\/li>\n<li><strong>Changed<\/strong>: WordPress.org review compliance completed<\/li>\n<li><strong>Changed<\/strong>: PHP 8.1 requirement enforcement with version check<\/li>\n<li><strong>Fixed<\/strong>: Autoload optimization for non-critical options to improve performance<\/li>\n<li><strong>Security<\/strong>: Complete nonce verification and permission check implementation<\/li>\n<li><strong>Security<\/strong>: WordPress.Security.EscapeOutput compliance strengthened<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li><strong>Security<\/strong>: Fixed libxml_disable_entity_loader() deprecation and LIBXML_NOENT DoS vulnerability in SVG processing<\/li>\n<li><strong>Security<\/strong>: Migrated to WordPress standard wp_kses() based secure SVG sanitization<\/li>\n<li><strong>Security<\/strong>: Enhanced WordPress security standards compliance (input validation, output escaping, nonce verification)<\/li>\n<li><strong>Fixed<\/strong>: Resolved AndwImageSizes class singleton pattern to prevent hook duplicate registration<\/li>\n<li><strong>Fixed<\/strong>: Media modal thumbnail display issues (CSS position:relative conflicts)<\/li>\n<li><strong>Fixed<\/strong>: Thumbnail crop checkbox save functionality<\/li>\n<li><strong>Changed<\/strong>: Code review responses and quality improvements<\/li>\n<\/ul>\n\n<h4>0.01<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>JPEG quality customization by image size<\/li>\n<li>PNG to JPEG automatic conversion<\/li>\n<li>8 custom image sizes (360px to 1920px)<\/li>\n<li>Media library MIME type labels<\/li>\n<li>Secure SVG upload support<\/li>\n<\/ul>","raw_excerpt":"Advanced media control plugin with JPEG quality, PNG conversion, SVG safety, and custom image sizes.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/257102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=257102"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/yasuo3o3"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=257102"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=257102"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=257102"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=257102"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=257102"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=257102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}