$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.