phpMyAdmin ile Belirli Tarih Aralığındaki WordPress Yazılarını Silme

wordpress hata

WordPress sitesinde bazen belirli bir tarih aralığında eklenmiş yazıları toplu şekilde kaldırmak gerekir. Yönetim paneli bu iş için her zaman yeterince esnek olmaz. Özellikle tam tarih aralığı ile çalışılacaksa, en pratik yöntem phpMyAdmin üzerinden SQL sorguları kullanmaktır.

Bu örnekte tablo ön eki rRstx_ olan bir WordPress veritabanında işlem yapılmaktadır. Amaç, önce belirli tarih aralığındaki yazıları kontrol etmek, sonra istersek çöp kutusuna almak ve en son çöpteki yazıları kalıcı olarak silmektir.

İşleme başlamadan önce

İlk olarak hosting panelinden phpMyAdmin açılır. Ardından ilgili veritabanı seçilir ve üst menüde yer alan SQL sekmesine girilir. Yazacağınız tüm komutlar bu alana yapıştırılarak çalıştırılır.

Bu işlemler doğrudan veritabanına müdahale ettiği için, başlamadan önce mutlaka yedek alınmalıdır. Özellikle kalıcı silme sorguları geri dönüşü zor işlemlerdir.

Belirli tarih aralığındaki yazıları kontrol etme

Önce silinecek yazıları görmek gerekir. Böylece yanlış tarih aralığı ya da yanlış içerik seçimi olup olmadığı net şekilde anlaşılır. Aşağıdaki sorgu, 26 Ocak 2026 ile 13 Mart 2026 arasındaki yazıları listeler.

SELECT ID, post_title, post_date, post_status
FROM rRstx_posts
WHERE post_type = 'post'
  AND post_status IN ('publish','draft','pending','future','private')
  AND post_date >= '2026-01-26 00:00:00'
  AND post_date <  '2026-03-14 00:00:00'
ORDER BY post_date ASC;

Burada dikkat edilmesi gereken nokta, bitiş tarihinin bir gün sonrası olan 14 Mart 2026 kullanılarak 13 Mart gününün de kapsanmasıdır. Bu yöntem tarih aralığı sorgularında daha temiz sonuç verir.

Yazıları önce çöp kutusuna alma

Doğrudan silmek yerine önce çöp kutusuna göndermek daha güvenli bir yöntemdir. Böylece bir hata yapılırsa WordPress panelinden geri dönüş şansı olur. Aşağıdaki sorgu seçilen tarih aralığındaki yazıları çöp durumuna geçirir.

UPDATE rRstx_posts
SET post_status = 'trash'
WHERE post_type = 'post'
  AND post_status IN ('publish','draft','pending','future','private')
  AND post_date >= '2026-01-26 00:00:00'
  AND post_date <  '2026-03-14 00:00:00';

Bu sorgu sonrasında WordPress yönetim panelinde Yazılar bölümüne giderek Çöp alanından içerikler kontrol edilebilir.

Çöpteki yazıları listeleme

Çöp kutusuna alınan yazıları kalıcı silmeden önce bir kez daha görmek isterseniz aşağıdaki sorgu kullanılabilir.

SELECT ID, post_title, post_date
FROM rRstx_posts
WHERE post_type = 'post'
  AND post_status = 'trash'
ORDER BY post_date DESC;

Bu kontrol sorgusu özellikle büyük temizlik işlemlerinde faydalıdır. Hangi içeriklerin çöpte olduğunu net şekilde gösterir.

Sadece çöpteki yazıları kalıcı silme

Eğer yalnızca çöpte bekleyen yazıları silmek istiyorsanız, en basit sorgu aşağıdaki gibidir. Ancak bu sorgu sadece posts tablosundaki kayıtları kaldırır.

DELETE FROM rRstx_posts
WHERE post_type = 'post'
  AND post_status = 'trash';

Bu yöntem çalışır, ancak tam temizlik sayılmaz. Çünkü yazılara ait yorumlar, meta veriler ve kategori ilişkileri veritabanında kalabilir.

Çöpteki yazıları tam temizleme

Daha sağlıklı bir işlem için çöpteki yazılarla birlikte onlara bağlı kayıtların da temizlenmesi gerekir. Bunun için önce ilişki tabloları ve meta alanları temizlenmeli, en son yazı kayıtları silinmelidir.

Aşağıdaki sorgular sırayla çalıştırılmalıdır.

DELETE tr
FROM rRstx_term_relationships tr
INNER JOIN rRstx_posts p ON p.ID = tr.object_id
WHERE p.post_type = 'post'
  AND p.post_status = 'trash';
DELETE c
FROM rRstx_comments c
INNER JOIN rRstx_posts p ON p.ID = c.comment_post_ID
WHERE p.post_type = 'post'
  AND p.post_status = 'trash';
DELETE pm
FROM rRstx_postmeta pm
INNER JOIN rRstx_posts p ON p.ID = pm.post_id
WHERE p.post_type = 'post'
  AND p.post_status = 'trash';
DELETE FROM rRstx_posts
WHERE post_type = 'post'
  AND post_status = 'trash';

Bu dört sorgu birlikte kullanıldığında, çöpteki yazılar ve onlara bağlı temel veriler temizlenmiş olur.

Belirli tarih aralığındaki yazıları doğrudan kalıcı silme

Bazı durumlarda yazıları önce çöpe göndermeden doğrudan tamamen kaldırmak gerekebilir. Bu yöntem daha serttir ve dikkatli kullanılmalıdır. Önce meta veriler, yorumlar ve ilişki kayıtları silinir, ardından yazıların kendisi kaldırılır.

DELETE tr
FROM rRstx_term_relationships tr
INNER JOIN rRstx_posts p ON p.ID = tr.object_id
WHERE p.post_type = 'post'
  AND p.post_status IN ('publish','draft','pending','future','private')
  AND p.post_date >= '2026-01-26 00:00:00'
  AND p.post_date <  '2026-03-14 00:00:00';
DELETE c
FROM rRstx_comments c
INNER JOIN rRstx_posts p ON p.ID = c.comment_post_ID
WHERE p.post_type = 'post'
  AND p.post_status IN ('publish','draft','pending','future','private')
  AND p.post_date >= '2026-01-26 00:00:00'
  AND p.post_date <  '2026-03-14 00:00:00';
DELETE pm
FROM rRstx_postmeta pm
INNER JOIN rRstx_posts p ON p.ID = pm.post_id
WHERE p.post_type = 'post'
  AND p.post_status IN ('publish','draft','pending','future','private')
  AND p.post_date >= '2026-01-26 00:00:00'
  AND p.post_date <  '2026-03-14 00:00:00';
DELETE FROM rRstx_posts
WHERE post_type = 'post'
  AND post_status IN ('publish','draft','pending','future','private')
  AND post_date >= '2026-01-26 00:00:00'
  AND post_date <  '2026-03-14 00:00:00';

Bu yöntem kullanıldığında içerikler doğrudan veritabanından kaldırılır. WordPress çöp kutusuna düşmezler.

Hangi yöntem daha mantıklı

En güvenli yol önce SELECT sorgusu ile içerikleri kontrol etmek, ardından UPDATE ile çöp kutusuna almak ve son aşamada çöpteki içerikleri temizlemektir. Bu yaklaşım hata payını ciddi şekilde azaltır.

Eğer çok büyük bir temizlik yapılacaksa ve hangi içeriklerin silineceği net olarak biliniyorsa, doğrudan silme yöntemi tercih edilebilir. Ama burada yedek almak şarttır.

Bu örnekte kullanılan tablo ön eki rRstx_ şeklindedir. Sizin sitenizde farklı bir ön ek varsa, tüm sorgularda buna göre değişiklik yapmanız gerekir. phpMyAdmin üzerinden SQL çalıştırırken önce kontrol, sonra uygulama mantığıyla ilerlemek her zaman daha doğrudur.

Hızlı İletişim Formu

Sorun, teklif ya da net bir soru… kısa yazın, biz dönüş yapalım.