• 10-04-2023, 23:09:25
    #1
    Merhaba, WordPress sitemde kullanılmayan ve birden fazla olan görselleri silmek istiyorum. Bunu nasıl yapabilirim? Yardımcı olursanız sevinirim.

    Not: Media Clear eklentisini kullanıyordum fakat son zamanlarda yazı içerisinde kullandığım görselleri de kullanılmamış diye işaretlediği için eklenti işe yaramıyor.
  • 10-04-2023, 23:11:19
    #2
    Yüklemeleri gerçekleştirdiğiniz dizine gidip ayıklama yaparak silebilirsiniz, bunun dışında kullanacağınız eklentiler entegre gerektirir.
  • 10-04-2023, 23:30:08
    #3
    Sezar6699 adlı üyeden alıntı: mesajı görüntüle
    Yüklemeleri gerçekleştirdiğiniz dizine gidip ayıklama yaparak silebilirsiniz, bunun dışında kullanacağınız eklentiler entegre gerektirir.
    Neredeyse 1000 adet fotoğrafı tek tek ayıklamam zaman kaybettirir. Güzel çalışan bir eklenti yok mudur bunun için?
  • 10-04-2023, 23:31:12
    #4
    Asyacuk adlı üyeden alıntı: mesajı görüntüle
    Neredeyse 1000 adet fotoğrafı tek tek ayıklamam zaman kaybettirir. Güzel çalışan bir eklenti yok mudur bunun için?
    Eklenti de olsa sizin seçmeniz gerekiyor, web sitesinde kullanılan fotoğrafların silinmemesi gerekiyor.
  • 10-04-2023, 23:36:05
    #5
    Sezar6699 adlı üyeden alıntı: mesajı görüntüle
    Eklenti de olsa sizin seçmeniz gerekiyor, web sitesinde kullanılan fotoğrafların silinmemesi gerekiyor.
    Yazılarda, sayfalarda kullanılan görseller hariç hepsinin silinmesini istiyorum. Bir iki eklenti var ama görsel silme için premium istiyorlar.
  • 11-04-2023, 00:07:24
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Selamlar.
    Yazılarda ve sayfalarda kullanılan görseller hariç hepsinin silinmesini istiyorum demişsiniz.
    <?php
    /*
    Sinyor_Ridak
    */
    
    // Medyadan tüm görselleri almak için fonksiyon
    function get_all_images() {
        $args = array(
            'post_type'      => 'attachment',
            'post_mime_type' => 'image',
            'post_status'    => 'inherit',
            'posts_per_page' => -1,
        );
        $query_images = new WP_Query( $args );
        $images = array();
        foreach ( $query_images->posts as $image ) {
            $images[] = $image;
        }
        return $images;
    }
    
    // İçerikte kullanılan tüm görselleri almak için fonksiyon
    function get_used_images() {
        global $wpdb;
        $query = "
            SELECT DISTINCT meta_value 
            FROM {$wpdb->postmeta} 
            WHERE meta_key IN ('_thumbnail_id', '_wp_attached_file')
        ";
        return $wpdb->get_col( $query );
    }
    
    // Kullanılmayan resimleri silme fonksiyonu.
    function delete_unused_images() {
        $all_images = get_all_images();
        $used_images = get_used_images();
        $unused_images = array();
        foreach ( $all_images as $image ) {
            if ( ! in_array( get_post_meta( $image->ID, '_wp_attached_file', true ), $used_images ) && ! in_array( $image->ID, get_posts( array( 'post_type' => 'any', 'post_status' => 'publish', 'fields' => 'ids', 'meta_query' => array( array( 'key' => '_thumbnail_id', 'value' => $image->ID, 'compare' => '=' ) ) ) ) ) ) {
                $unused_images[] = $image;
            }
        }
        foreach ( $unused_images as $image ) {
            wp_delete_attachment( $image->ID, true );
        }
    }
    
    // İnit işlemi çalıştırma.
    add_action( 'init', 'delete_unused_images' );
    Bu sayfayı plugins üzerinde kaydedip çalıştırın sayfa dediğiniz şekilde yazılarda sayfalarda olmayan görselleri tespit edip silmeye yöneliktir.
    Bunu yapmadan önce komple yedek alınız, herhangi bir olumsuz durumda sorumlu değilim.
    Herhangi bir hata mesajı verirse yazabilirsiniz
    Teşekkürler.
  • 11-04-2023, 00:08:07
    #7
    Media Clear işe yaramıyor en mantıklısı manuel silmek, bu şekilde düzgün çalışan bir eklenti mevcut değil
  • 11-04-2023, 00:20:07
    #8
    Gerekli yedeği alıp sıfırdan kursanız?
  • 15-04-2023, 16:43:33
    #9
    erdem21 adlı üyeden alıntı: mesajı görüntüle
    Gerekli yedeği alıp sıfırdan kursanız?
    Nasıl yani?