MENU
年月アーカイブ
カテゴリー

WordPressのリビジョン無効化&既存リビジョンデータを削除する方法

  • URLをコピーしました!

先日、このブログ(yossy-style)のWordPressのリビジョンを無効化して、ついでに既存のリビジョンデータを削除したので、また備忘録がわりに書いておきたいと思います。

目次

WordPressのリビジョンを無効化する理由

WordPressを初期設定で使っていると、知っている知っていないは別にしてリビジョンという機能が有効になっています。
リビジョンとは記事の変更があった際にその履歴をバックアップ的に以前の状態を残しておいてくれる機能です。
もし記事変更して後からやっぱり元に戻したいときに、リビジョンが有効なら、リビジョンとして保存されている以前の状態(例えば4月10日 13:00)にワンクリックで簡単に戻すことができます。

ちなみにリビジョンデータが作成されるタイミングは、WordPress管理画面内で任意の操作を行ったタイミング、例えば【記事を下書き保存・プレビュー、記事を公開したり、公開した記事を更新したタイミング】で、自動的に保存されていきます。

一見すると便利そうなリビジョンですが、正直自分には全く必要なかったわけでして。
このブログを1年ちょい運営してきて記事数も合計390件になりましたが、リビジョンで記事を以前の状態に戻すことは全然なかったので、もう使わないからリビジョンを無効化しようと思ったわけです。

ついでに言うと、このリビジョンが有効になっていると、WordPressのデータベースのテーブルにリビジョンデータがどんどん蓄積されていくので、不必要にデータが多くなってしまうわけです。データが多くなればページ表示のレスポンスにも悪影響が出てもおかしくないので、やっぱりリビジョンは無効にするべきだなと。
そして今までにデータベースに溜まってしまった不必要なリビジョンのデータは削除すべきだなと思ったわけです。

(1)リビジョンを無効化する→プラグイン『Revision Control』の導入

まずは今後記事を作成、更新するたびに蓄積されてしまうリビジョンを無効にすることに。
で、調べてみるとどうやらプラグインを使う方法と使わない方法(wp-config.phpに記述追加)があるらしい。
正直どちらでも良かったけど、より簡単でリビジョンの設定をこまかくいじれるプラグインを導入することにしました。

ちなみにリビジョンを無効化するために導入したプラグインは『Revision Control』というプラグイン。どうやらこれが一番人気らしい。
このRevision Controlの機能としては、リビジョンを完全無効化、もしくは有効にする場合でも1つの記事に対してリビジョンの保存数を任意の件数に上限設定できるので、データベースの容量を節約することができます。
早速、WordPress管理画面よりプラグイン追加。

「設定」→「Revisions」でリビジョン設定より、リビジョンの設定を行います。

01

上述の通り、自分の場合リビジョンは一切不要なので、「Do not store Revisions」を選択します。
Posts(投稿ページ)もPages(固定ページ)も両方ともです。
(※もしリビジョンは有効にして最新●件は残したいという人は「Maximum ● Revisions stored」を選べばOKです)。
最後に「Save Changes」を押して設定変更完了。

02

これで、リビジョンを無効化できました。
今後作成する新規記事や既存記事の修正を行っても、リビジョンは保存されなくなります。よしよし(^^)/

(2)既存リビジョンデータをデータベースから削除する→phpMyAdminよりSQL実行

Revision Controlで今後作成・修正する記事に関してはリビジョンは保存されなくなりましたが、このRevision Controlでリビジョンが有効だった期間に蓄積されたリビジョンは自動的に削除されるわけではないのであしからず。
ちなみにリビジョンのデータ保存先はWordPressの使用データベース内のwp_postsテーブルです。
レンタルサーバ(XSERVER)管理画面からphpMyAdminにログインして、リビジョンのレコード数(≒データ数)を事前に確認したら(2016/6/10時点)、390件前後の公開記事数で、wp_postsのデータベース内の総レコード数が11721件(テーブル容量:104MB)、そしてリビジョンのレコード数がなんと7107件でした。リビジョン使ってないのにどんだけレコード増やしてくれているんだか(‘Д’)

というわけで今からこのリビジョンを削除していきます。

ちなみにリビジョンのレコードはwp_postsテーブルにフィールド名(post_type)が(revision)という値で保存されていくので、その条件で検索すればレコードを抽出して確認できます。SQL文なら「SELECT FROM wp_posts WHERE post_type=’revision’;」でOKかと。

さて、この膨大なリビジョンのレコード削除なんですが、最初はリビジョン無効化と同様にプラグインでやろうと思って、これまたBetter Delete Revisionというよく使われているプラグインを試したみたんですけど、レコード数が多すぎるせいかエラーになってリビジョンのレコード削除ができないのでプラグインを使うのはやめました。

で、結局は直接phpMyAdmin上でSQLでリビジョンレコードを削除することにしました。
ただSQLでレコードを削除する前に、念のためwp_postsテーブルもしくはデータベースごと「エクスポート」よりsqlファイルを書き出してバックアップしておきます。

バックアップしたら、いよいよレコード削除のSQL文を実行します。SQL文はコレです↓
DELETE FROM wp_posts WHERE post_type=’revision’;

post_typeがrevisionのレコード(=リビジョンのレコード)を全て削除するっていうSQL文を「SQL」タブのクエリ入力エリアに入力したら、「実行する」をクリック。

05

これでwp_postsテーブルにあったリビジョンレコードが全て削除されて(7107件)、wp_postsの総レコード数は11721件→4614件に減りました。
てか、wp_posts内にあった約60%のレコードがリビジョンのレコードに占有されていた事に驚きでしたけども。まぁ削除したから結果オーライということで(^^)/

でもレコードは削除されたのに、wp_postsのテーブルの容量は104MBのまま。
というわけで、最後に「テーブルの最適化」を行います。
phpMyAdminの該当データベースのテーブル一覧画面を開いて、wp_postsテーブルにチェックを入れて、「テーブルを最適化する」を選択して実行します。

04

これで、もともと104MBあったテーブルの容量は10.2MBと90%以上容量を小さくすることができました。
これで全作業終了です。めでたしめでたし。

yossy的まとめ

個人的にはWordPressの初期設定で有効になっているリビジョンは無効にするか、有効にするにしてもリビジョンの上限数を設定しておいたほうが良いのかなと思います。だってリビジョンって使わないし、データベースの容量を圧迫するので(苦笑)
WordPressサイト・ブログの表示が遅い・重いのが気になる人、WordPressで使用しているデータベースの容量の圧迫、レコード数の増大が気になる人は上記の操作でリビジョン無効化&既存リビジョンレコードの削除を試してみるのもありかもですよ(^^)/

PS/ちなみにWordPressを利用するならレンタルサーバはXSERVERがレスポンスが速くて料金も安くておすすめです。このブログもXSERVERで運用してます(^^)/

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
yossy(ヨッシー)
岐阜県なんちゃってブロガー
岐阜県美濃加茂市在住の田舎人(♂)。
好きなことはギター・音楽・カフェ・グルメ巡りです。
2015年2月から自分への備忘録・雑記としてこのブログを始めました。
普段の日常生活で起きたこと、感じたこと、思ったことを気まぐれに不定期更新で書いてます。
目次