本ページはプロモーションが含まれています
WordPressにはリビジョンと呼ばれる記事の下書き保存機能が搭載されています。この機能によって、過去に編集した記事を復元することや、現在の記事との変更点を照合することができます。
しかし、このリビジョン(下書き)もデータベースに保存されていくため、下書きが溜まりすぎるとそれだけデータベースのサイズも膨らみいろいろな副作用も生じてきます。
そうならないために、不要なリビジョンは削除していきたいところですが、1記事1記事削除しているのはとても骨の折れる作業ですよね。
今回はそのリビジョンを一括で削除し、自身のサイトに合わせてリビジョン管理ができる方法をご紹介します。
プラグインを用いての方法とプラグインなしの方法、SQL文を用いてデータベースから直接削除する方法をご紹介しています。
目次を参考にしながら、ご自身に適した方法でチャレンジして観てください。
※WordPressに慣れていない方はプラグインを用いた方法をおすすめします。
リビジョンが溜まると起こる問題
実装に入る前にリビジョンが溜まるとどんな問題が起こるのか確認しておきましょう。
リビジョン(下書き)が作成されるタイミングは以下です。
「手動の下書き保存」をした時
下書き中の記事を変更してプレビューした時
記事を公開した時
公開した記事を変更し、最初に「自動下書き保存」した時
公開した記事の変更をプレビューした時
公開した記事を更新した時
ゴミ箱に記事を移動した時
ゴミ箱から記事を戻した時
http://netbiz-life.com/archives/4856
データベースが肥大化する
リビジョンは上書きされて保存されるわけではなく、編集するごとに別の下書きとして保存されます。その分、データベースは肥大化していき、パフォーマンスにも影響し始めます。
投稿IDがどんどん増えていく
パーマリンクにIDを用いている方は、リビジョンが作成されるたびに記事のIDも増えて行くため管理ができなくなります。
データベースをバックアップする
リビジョンデータの削除は、データベースをいじることになります。念のため、データベースのバックアップを取っておきましょう。
バックアップが完了したら、以下で実際にリビジョンを削除、最適化をしていきます。ご自身に合ったやり方で実践してみてください。
プラグインを使用してリビジョンを削除する
今回は「Optimize Database after Deleting Revisons」と「Revision Control」の2つのプラグインを使用して、リビジョンの削除、最適化の管理をしていきます。
プラグインのインストール
管理画面から「プラグイン」→「新規追加」をクリックし、検索窓にプラグイン名(Optimize Database after Deleting Revison、Revision Control)を記入してください。
該当のプラグインが見つかったら、「今すぐインストール」→「有効化」をクリックします。
これでプラグインのインストールは完了です。
Optimize Database after Deleting Revison
「Optimize Database after Deleting Revison」を使って、リビジョンの一括削除とデータベースの最適化を行っていきます。
設定
管理画面から「設定」→「Optimize Database」をクリックします。
「Settings」の項目を編集していきます。
設定項目は以下の通り
Maximum number of – most recent – revisions to keep per post/page | リビジョンの保存数を設定 |
Delete trashed items | ゴミ箱データを削除 |
Delete spammed items | スパムデータを削除 |
Delete unused tags | 不使用タグを削除 |
Delete expired transients | 内部キャッシュを削除 |
Delete pingbacks and trackbacks | ピンバックやトラックバックを削除 |
Keep a log | ログデータを保存 |
Scheduler | データベースの自動最適化のスケジュール設定 |
Show ‘1-click’ link in Admin Bar | 管理画面にリンクを表示 |
Show an icon in the Admin Menu | 管理画面にアイコンを表示 |
それぞれに上記のようにチェックを入れたら「Save Setting」をクリックしてください。
これで設定は完了です。
最適化
つづいてデータベースの最適化を行っていきます。「GoToOptimizer」をクリックします。
先ほどチェックを入れた内容が表示されます。問題がなければ「Start Optimization」をクリックしてください。
下にスクロールすると「Saving」の項目があります。ここに最適化後のデータ量を確認することができます。
これで最適化の作業は完了です。無事、不要なリビジョンを削除し、データベースの最適化ができました。
Revision Control
つづいて「Revision Control」の設定を行っていきます。
設定
管理画面「設定」→「リビジョン」をクリックします。
以下の項目を設定していきます。
デフォルトのリビジョン設定→投稿 | 投稿ページのリビジョンの最大保存数 |
デフォルトのリビジョン設定→固定ページ | 固定ページのリビジョンの最大保存数 |
デフォルトのリビジョン設定→カスタムCSS | カスタムCSSページのリビジョンの最大保存数 |
リビジョンの範囲 | リビジョンの最大保存数の選択範囲 |
ここは好みの数値で良いですが、無効化すると下書きを保存をしないとプレビューが見られなくなります。任意の数値に設定しましょう。
これでリビジョンの制御は完了です。必要以上にリビジョンが溜まることはありません。
プラグインなしでリビジョンを制御する
プラグインを使用せずにリビジョンを制御することもできます。プラグインを使用したくないという方はこの方法でやってみてください。
リビジョン機能を無効にする
リビジョン機能を無効にするには”wp-config.php”を編集します。
ファイル最下行にある
require_once(ABSPATH.'wp-settings.php');
より前に、以下のコードを追加してください。
define('WP_POST_REVISIONS',false);
これで実装は完了です。
※プラグインを使用した実装方法を紹介したセクションでも記述したのですが、リビジョンの機能の無効化は一度下書きを保存したいとプレビュー機能が使えなくなりますのでおすすめしません。
リビジョンの数を制限する
保存するリビジョンの最大数を制御するには、同じ”wp-config.php”ファイルに以下のコードを追加します。第2引数に任意の数値を入れることで最大保存数を指定できます。今回は2記事とします。
define('WP_POST_REVISIONS',2);
記述する箇所は、
require_once(ABSPATH . 'wp-settings.php');
より前に記述します。
これで実装は完了です。実装後、指定した数値より古いリビジョンは削除されます。
手動で直接データベースから削除する
データベースのバックアップ
直接データベースを編集していきます。必ずデータベースのバックアップを取っておきましょう。
SQL文を実行
WordPressのリビジョンはデータベース上に”post_type”という項目に格納されています。rivisionとなっているデータをSQL文で削除します。
今回はMysqlを使用して説明していきます。
SQLタブを開き、デフォルトで記入されているSQL文を削除し、以下のSQL文を入力します。
E FROM wp_posts WHERE post_type = 'revision';
実行するボタンをクリックしてください。
これでリビジョンが全て削除されます。
まとめ
リビジョンは少量であればそれほどサイトのパフォーマンスに影響はありません。しかし、長期間サイトを運営し、記事数が大量に増えるにつれてリビジョンの数も多くなり、しだいにサイトの表示スピードが落ちたりと何かと不具合おきてきます。月に一度程度、定期的にリビジョンの管理をすることをおすすめします。