Yayın düzeltmeleri nasıl silinir?


9

Düzeltme sayısı için bir sınır belirlemedim, bu da gönderimin bazılarının 20'den fazla düzeltmeye sahip olmasını sağlıyor, bu nedenle bu düzeltmeler nasıl silinir?

Bu arada, WPMU kullanıyorum ve birçok blogum var, bu yüzden tüm bloglarım için WordPress revizyonları nasıl silinir?

Yanıtlar:


10

Bu, kullanımı çok daha güvenli bir sorgudur ve cevabındaki deathlocks sorgusundan farklı olarak postmeta ve term_relationship'ten ilgili girdileri kaldıracaktır .

{İd} öğesini her blog yayınları tablosunun kimliğiyle değiştirin. Tüm posta tablolarını bir kerede çalıştırmak için bu sorguyu birleştirebilirsiniz, ancak önce bunu bir tabloda deneyin. Tek WP kurulumlarında birçok kez kullandım.

DELETE a,b,c
FROM wp_{id}_posts a
LEFT JOIN wp_{id}_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_{id}_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

Çalıştırdıktan sonra phpmyadmin içinde veritabanını optimize edin.

Ve gelecekteki düzeltmeleri önlemek için bu satırı wp-config.php dosyasının üstüne yakın bir yere ekleyin:

define('WP_POST_REVISIONS', 0);

veya bir düzeltmeyi kaydedin:

define('WP_POST_REVISIONS', 1);

Haklısın, bu da çok verimli ... cevabımı aceleyle gönderdi ve WP MU bölümünü de fark etmedi. +1.
deathlock

ve diyelim ki son 3 dedikten sonra düzeltmeler nasıl kaldırılır?
Matoeil

2

Ayrıca, bunu yapmanıza yardımcı olabilecek bir eklenti, WP Optimize var

Web sitesinden:

WP-Optimize bir WordPress 2.9 ++ veritabanı temizleme ve optimizasyon aracıdır. Veritabanı tablolarınızı optimize etmek için PhpMyAdmin gerektirmez.

Posta düzeltmelerini, spam kuyruğundaki yorumları, onaylanmamış yorumları birkaç tıklamayla kaldırmanıza olanak tanır.


Lütfen eklentinin ne yaptığını ve sorunu nasıl çözdüğünü açıklayın.
fuxia

1
Phpmyadmin olmadan düzeltmeleri temiz ve optimize birçok eklenti vardır; hiçbirinin WPMU veya çoklu site ile çalıştığı açık değildir.
markratledge

Bu eklenti veritabanımıza zarar verecek mi?
hugemeow

Eklentiyi sorunsuz çalıştığım birkaç sitede kullandım. Ama önce db'nizi yedeklemek her zaman iyi bir fikirdir (ama bu sadece en iyi uygulamadır).
darronz

0

Tüm Wordpress düzeltmelerinizi silmek için şu sorguyu kullanabilirsiniz:

DELETE FROM wp_posts WHERE post_type = "revision";


wpmu üzerinde 100'den fazla blog var, bu yüzden çalıştırmak gerekir DELETE FROM wp_n_posts WHERE post_type = "revision"; n kere, değil mi? ama bu oldukça sıkıcı :(
hugemeow

0

Bu kodu temanızın functions.phpdosyasına da ekleyebilirsiniz :

if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 3);
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', false);

Bu kod, WP_POST_REVISIONSsınırın girilip girilmediğini kontrol eder wp-config.php, Eğer girmediyse, post revizyonları sınırlayan fonksiyona bir parametre iletir. Yukarıdaki örnekte, gönderiler 3 düzeltme ile sınırlıdır.

Bu, kod eklemeyi bilmeyen (veya istemeyen) insanlar için temalar oluştururken iyi bir çözümdür.

Alındığı wp-functions.com


2
Bu cevap, düzeltmelerin silinmesinden bahsetmiyor. Ancak gelecekteki içerikler için revizyonların nasıl devre dışı bırakılacağı konusunda iyi bir tavsiye.
Nilambar Sharma

0

Direk düzeltmelerini temizlemek için WP Süpürme eklentisini kullanabilirsiniz. Eklentiyi etkinleştirdikten sonra WordPress veritabanınızı temizlemek için Araçlar »Süpür'e gidin.


0

Cevabınız için teşekkürler markratledge. {İd} ile ilgili sözdizimindeki bir şey benim için işe yaramadı. Yayın kimliklerimden biri olan {id} değerini 4009 olarak değiştirdim ancak başarılı olamadım. Https://dev-notes.eu/2017/11/manage-and-safely-delete-revisions-in-wordpress/ adresinde bir çözüm buldum.

DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';

Güzel çalıştı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.