$attachment_id, 'post_mime_type' => $result['mime'], ) ); $metadata['filesize'] = $result['filesize']; if ( isset( $metadata['file'] ) ) { $dir = dirname( $metadata['file'] ); $fname = basename( $result['path'] ); $metadata['file'] = ( '.' === $dir ) ? $fname : $dir . '/' . $fname; } } } // B. EXIF temizliği — dönüşüm yoksa yap (dönüşümde GD zaten temizler) if ( get_option( 'erdo_remove_exif' ) && ! $did_convert ) { ERDO_Auditor::clean_metadata( $attachment_id ); } return $metadata; } add_filter( 'wp_generate_attachment_metadata', 'erdo_auto_webp_convert', 10, 2 ); /* ------------------------------------------------------------------ LAZY LOADING (Özellik 6) WordPress 5.5+ zaten loading="lazy" ekliyor ama bazı eklentiler bypass ediyor. Biz the_content'te de uyguluyoruz. ------------------------------------------------------------------ */ function erdo_add_lazy_loading( $html ) { if ( ! get_option( 'erdo_lazy_loading', 1 ) ) { return $html; } // loading özelliği yoksa ekle return preg_replace( '/]*\bloading=)([^>]*>)/i', ' array( 'url' => $response['url'] ), ); } return $response; } add_filter( 'wp_prepare_attachment_for_js', 'erdo_svg_thumbnail', 10, 2 ); /* ------------------------------------------------------------------ MULTİSİTE TEMEL DESTEĞİ (Özellik 8) Her site kendi ayarlarını kullanır; network admin sayfası için erdo_network_settings option'ı eklenir. ------------------------------------------------------------------ */ if ( is_multisite() ) { add_action( 'network_admin_menu', function () { add_menu_page( 'Erdo Network Settings', 'Image Optimizer', 'manage_network_options', 'erdo-network', 'erdo_network_settings_page', 'dashicons-performance', 11 ); } ); } function erdo_network_settings_page() { if ( ! current_user_can( 'manage_network_options' ) ) { return; } if ( isset( $_POST['erdo_network_save'] ) && check_admin_referer( 'erdo_network_nonce' ) ) { $raw_q = isset( $_POST['erdo_network_quality'] ) ? sanitize_text_field( wp_unslash( $_POST['erdo_network_quality'] ) ) : '80'; $q = max( 10, min( 100, (int) $raw_q ) ); update_site_option( 'erdo_network_quality', $q ); update_site_option( 'erdo_network_format', sanitize_text_field( wp_unslash( $_POST['erdo_network_format'] ?? 'webp' ) ) ); echo '

Network settings saved.

'; } $q = get_site_option( 'erdo_network_quality', 80 ); $fmt = get_site_option( 'erdo_network_format', 'webp' ); echo '

Erdo Image Optimizer — Network Settings

'; wp_nonce_field( 'erdo_network_nonce' ); echo ''; echo ''; echo ''; echo '
Default Quality %
Default Format

'; }