投稿のリビジョンを削除するには?


9

リビジョンの数に制限を設定していないため、私の投稿の一部に20を超えるリビジョンがあるため、これらのリビジョンを削除するにはどうすればよいですか?

ちなみに、私はWPMUを使用していて、ブログがたくさんあるので、すべてのブログのWordPressリビジョンを削除するにはどうすればよいですか?

回答:


10

これははるかに安全なクエリであり、彼の回答のdeathlocksクエリとは異なり、postmetaとterm_relationshipから関連するエントリが削除されます。

{id}を各ブログ投稿テーブルのIDに変更します。このクエリを組み合わせてすべてのpostテーブルを一度に実行できますが、最初に1つのテーブルでこれを試してください。単一の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);

または、1つのリビジョンを保存します。

define('WP_POST_REVISIONS', 1);

そうです、これも非常に効率的です...私の回答を急いで投稿し、WP MUの部分にも気付きませんでした。+1。
デスロック

そして最後の3つを言うことを除いてリビジョンを削除する方法?
Matoeil 2013

2

これを行うのに役立つプラグイン、WP Optimizeもあります

ウェブサイトから:

WP-Optimizeは、WordPress 2.9 ++データベースのクリーンアップおよび最適化ツールです。データベーステーブルを最適化するためにPhpMyAdminは必要ありません。

数回のクリックで、投稿の改訂、スパムキュー内のコメント、未承認のコメントを削除できます。


プラグインの機能と問題の解決方法を説明してください。
fuxia

1
phpmyadminなしでリビジョンをクリーンアップして最適化するプラグインはたくさんあります。それらのいずれも、WPMUまたはマルチサイトで動作すると明記されていません。
markratledge 2012年

このプラグインは私のデータベースに害を及ぼしますか?
-hugemeow

私は問題なく実行しているいくつかのサイトでプラグインを使用しました。ただし、常に最初にdbをバックアップすることをお勧めします(ただし、それが最善の方法です)。
darronz 2012年

0

Wordpressのすべてのリビジョンを削除するには、次のクエリを使用できます。

DELETE FROM wp_posts WHERE post_type = "revision";


wpmuには100を超えるブログがあるので、実行する必要があり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、設定されていない場合は、ポストリビジョンを制限する関数にパラメーターを渡します。上記の例では、投稿は3つのリビジョンに制限されています。

これは、コードを追加する方法がわからない(またはしたくない)人々のためにテーマを作成する場合の優れたソリューションです。

wp-functions.comから取得


2
この回答では、リビジョンの削除については触れていません。しかし、将来のコンテンツのリビジョンを無効にする方法についての良いアドバイスです。
Nilambar Sharma 2015

0

WP Sweepプラグインを使用して、投稿のリビジョンをクリーンアップできます。プラグインをアクティブ化した後、ツール»スイープに移動して、WordPressデータベースをクリーンアップします。


0

答えをありがとう、マークラットレッジ。{id}に関する構文の一部が機能しませんでした。私は{id}を私の投稿IDの1つである4009に変更しましたが、成功しませんでした。私は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';

それはうまくいきました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.