Як видалити версії публікацій?


9

Я не встановив обмеження на кількість ревізій, через що деякі мої публікації мають більше 20 змін, тож як видалити ці зміни?

До речі, я використовую WPMU і маю багато блогів, тож як видалити редакції WordPress для всіх моїх блогів?

Відповіді:


10

Це набагато безпечніше запит на використання і видалить відповідні записи з PostMeta і term_relationship, в відміну від deathlocks запиту в своїй відповіді.

Змініть {id} на ідентифікатор кожної таблиці публікацій блогу. Ви можете комбінувати цей запит для запуску всіх таблиць публікацій одразу, але спробуйте це спочатку на одній таблиці. Я використовував його багато разів для одного встановлення 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'

Після запуску оптимізуйте базу даних у phpmyadmin.

І додайте цей рядок біля верхньої частини wp-config.php, щоб запобігти майбутнім редакціям:

define('WP_POST_REVISIONS', 0);

або збережіть одну версію:

define('WP_POST_REVISIONS', 1);

Ви маєте рацію, і це набагато ефективно ... Опублікував свою відповідь поспіхом і теж не помітив частину WP MU. +1.
смертна карка

і як видалити зміни, за винятком останніх 3?
Matoeil

2

Також є плагін, WP Optimize, який може допомогти вам це зробити

З веб-сайту:

WP-Optimize - це засіб очищення та оптимізації бази даних WordPress 2.9 ++. Для оптимізації таблиць бази даних не потрібно PhpMyAdmin.

Це дозволяє видаляти зміни до публікацій, коментарі в черзі спаму, незатверджені коментарі за кілька кліків.


Опишіть, будь ласка, що робить плагін і як він вирішує проблему.
фуксія

1
Є багато плагінів, які очищають зміни та оптимізують без phpmyadmin; жоден з них не чітко заявлений для роботи з WPMU або багатостороннім сайтом.
markratledge

чи буде цей плагін шкодити моїй базі даних?
hugemeow

Я використовував плагін на кількох сайтах, на яких я працюю, без проблем. Але завжди добре спершу створити резервну копію вашого DB (але це просто найкраща практика).
darronz

0

Щоб видалити всі ваші редакції Wordpress, ви можете використовувати цей запит:

DELETE FROM wp_posts WHERE post_type = "revision";


у мене більше 100 блогів на wpmu, тому я повинен працювати DELETE FROM wp_n_posts WHERE post_type = "revision"; за n разів, правда? але це досить нудно :(
hugemeow

0

Ви також можете додати цей код у файл теми functions.php:

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

Цей код перевіряє, чи WP_POST_REVISIONSвстановлено обмеження wp-config.php, якщо його немає, то він передає параметр функції, що обмежує поправки після публікації. У наведеному вище прикладі дописи обмежені трьома версіями.

Це хороше рішення при створенні тем для людей, які не знають, як (або не хочуть) додавати код.

Взято з wp-functions.com


2
Ця відповідь не говорить про видалення змін. Але його хороша порада щодо відключення змін для майбутнього вмісту.
Nilambar Sharma

0

Ви можете використовувати плагін WP Sweep для очищення публікацій. Після активації плагіна перейдіть до Інструменти »Розмістити, щоб очистити вашу базу даних WordPress.


0

Дякую за відповідь, відмітка. Щось у синтаксисі щодо {id} не працювало для мене. Я змінив {id} на 4009, один із своїх ідентифікаторів, але успіху не було. Я знайшов рішення на веб- сайті https://dev-notes.eu/2017/11/manage-and-safely-delete-reitions-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';

Це добре працювало.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.