Odpowiedzi:
Jest to znacznie bezpieczniejsze zapytanie, które usunie powiązane wpisy z postmeta i term_relationship, w przeciwieństwie do zapytania deathlocks w jego odpowiedzi.
Zmień {id} na identyfikator każdej tabeli postów na blogu. Możesz połączyć to zapytanie, aby uruchomić wszystkie tabele postów jednocześnie, ale najpierw wypróbuj to na jednej tabeli. Użyłem go wiele razy na pojedynczych instalacjach WP.
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'
Po uruchomieniu zoptymalizuj bazę danych w phpmyadmin.
I dodaj ten wiersz u góry wp-config.php, aby zapobiec przyszłym zmianom:
define('WP_POST_REVISIONS', 0);
lub zapisz jedną wersję:
define('WP_POST_REVISIONS', 1);
Istnieje również wtyczka WP Optimize, która może ci w tym pomóc
Ze strony:
WP-Optimize to narzędzie do czyszczenia i optymalizacji baz danych WordPress 2.9 ++. Nie wymaga PhpMyAdmin do optymalizacji tabel bazy danych.
Pozwala usunąć poprawki postów, komentarze w kolejce spamu, niezatwierdzone komentarze w ciągu kilku kliknięć.
Możesz również dodać ten kod do functions.php
pliku swojego motywu :
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 3);
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', false);
Ten kod sprawdza, czy WP_POST_REVISIONS
został ustawiony limit wp-config.php
, a jeśli go nie ma, przekazuje parametr do funkcji, która ogranicza poprawki po. W powyższym przykładzie posty są ograniczone do 3 wersji.
Jest to dobre rozwiązanie przy tworzeniu motywów dla osób, które nie wiedzą, jak (lub nie chcą) dodawać kodu.
Zaczerpnięte z wp-functions.com
Dzięki za odpowiedź, markratledge. Coś w składni dotyczącej {id} nie działało dla mnie. Zmieniłem {id} na 4009, jeden z moich identyfikatorów postów, ale bez powodzenia. Znalazłem rozwiązanie na https://dev-notes.eu/2017/11/manage-and-safely-delete-revisions-in-wordpress/
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';
To działało dobrze.