Tahukah kamu setiap kali kita mengunggah gambar di WordPress, ia otomatis membuat berkas thumbnail juga? Sehingga ini membuat storage kita akan cepat penuh.

Pada saat kita mengunggah, secara asali paling tidak WordPress membuat 3 ukuran small , medium dan full. Ukuran thumbnailnya itu dinamis mengikuti theme.

Kalau kamu sering gonta-ganti tema, thumbnailnya akan menjadi banyak. Apalagi kalau kamu juga pakai plugin regenerated thumbnail. Makin banyak aja itu.

Solusinya adalah kita hapus berkasnya. Pertanyaannya kalau thumbnailnya udah banyak banget, kan gak mungkin kita hapus satu persatu, bisa gempor nanti 😵.

Karena itu saya mencoba membuatkan skripnya.

Disclaimer

  • Skrip ini hanya berjalan di GNU/Linux dan macOS.
  • Skrip ini hanya ditest pada bash dan zsh. Untuk shell lainnya belum saya coba.

Skripnya

Adapun skripnya bebas kamu mau berinama apa. Namun biar gak bingung kita beri nama remove_wp_thumbnails.sh. Dan pastikan letaknya di root dari WordPress-mu.

Caranya:

$ cd wordpress-mu
$ touch remove_wp_thumbnails.sh
$ chmod +x remove_wp_thumbnails.sh
$ vim remove_wp_thumbnails.sh

Kemudian copas isi skrip berikut:

1
2
3
4
5
6
7
8
# !/bin/bash

DIRECTORY="$(pwd)/wp-content/uploads"
cd $DIRECTORY
for thumbnail in $(find . -depth -type f -regex '.*/[a-zA-Z-]*-[0-9].*x[0-9].*.[png|jpg|jpeg|gif]$'); do
    echo $thumbnail >> "$DIRECTORY"/rm-results.txt
    rm $thumbnail
done

Simpan lalu jalankan dengan perintah:

$ ./remove_wp_thumbnails.sh

Penjelasan Script

DIRECTORY adalah variabel untuk menentukan di mana letak uploads dari WordPress.

Argument -depth pada perintah find, untuk memberi tahu, bahwa kita mencari berkasnya sampai ke dalam-dalamnya (rekursif).

Argument -type f pada find, memberi tahu untuk mencari berkas saja (f = file).

Regex .*/[a-zA-Z-]*-[0-9].*x[0-9].*.[png|jpg|jpeg|gif]$ berarti semua berkas ber-extension png, jpg, jpeg dan gif dengan filename alphabet- dan berakhiran nomor x nomor. Jadi intinya kita mencari berkas dengan format nama-000x000.png.

Dikode baris ke-6 hasil output dari perintah find kita taru ke dalam berkas bernama rm-resuls.txt. Ini berguna untuk memastikan berkas yang kita cari itu sudah benar untuk di hapus.

Kalau kamu belum yakin dengan script di atas. Pada kode baris ke-7 yakni rm $thumbnail ada baiknya jangan langsung ditulis. Pastikan kamu yakin berkas-berkas mana saja yang mau diapus.

Script Tambahan

Jika memang kamu gak yakin dan kamu gak menulis kode pada baris ke-7 di atas. Kamu bisa sunting isi dari berkas rm-results.txt sampai benar-benar yakin.

Nah setelah disunting, kamu tinggal jalankan perintah berikut:

$ xargs rm < rm-results.txt

Penutup

Setelah menjalankan skrip di atas, sebaiknya kamu regenerated kembali thumbnail-mu, dengan bantuann plugin atau dengan skrip dari wp-cli.

$ wp media regenerate --yes

Baik sampai di sini dulu ya, kalau masih bingung silahkan bertanya pada kotak komentar di bawah. Semoga bermanfaat.