icon
Let's create! WordPressサイト制作とメンテ/エラー対応から、PHP/CSS/javascriptプログラミング、動画・音・イラスト等制作まで扱うコラム

【超危険】WordPressデータベースリビジョンお掃除

更新: 2024/02/10 2031文字

今回は、WordPressのリビジョンが、データベースに大量にたまっていたのでお掃除します。操作はプラグインではなく、phpmyadminから直接操作。SQLクエリを書いてやってもよさそうです。ただし、操作を間違えると記事が消えてしまう(超危険)ので、データベース操作に自信の無い方は一人で行わないでください(不安ならバックアップなども)。『リビジョンとは・データベースのどこにあるか・消し方・制限するには』などを、さっそく見ていきましょう。

WordPressリビジョンとは?

WPに搭載されている『保存済み下書き・公開済み投稿の更新記録を保存』する機能のことです。単語的な意味は『改訂』です。 使い方によっては便利で、保存されたリビジョンから、投稿の過去バージョンを復元できたりします(リビジョンが複数あれば、複数バージョンから選んで復元、みたいなこともできます)。

しかし、放置するとどんどんデータベース(wp〇〇〇_postsテーブル)にたまっていくので、人によっては回数を制限したり、無効にしたりもすることがあります。

WordPressリビジョンは、データベースのどこにあるか?

今回はお掃除プラグインとか入れずに、いらないリビジョンをサックリ消したいので、まずはデータベースでどこにあるか確認しましょう。phpmyadminでやってみます。上の段落でも述べた『wp〇〇〇_postsテーブル(〇〇〇は接頭辞)』内にあります。このテーブルは項目がいっぱいあるので、右にスライドさせていきます。

フィールド名は『post_type』。ここの値は『post(通常投稿)・page(固定ページ)・attachment(記事添付ファイル)・revision』があり、『revision』となっているものがリビジョンです

WPデータベースリビジョンお掃除(絞り込まないでやると記事が消えるので注意)

では、『WPデータベースリビジョンお掃除』をはじめます。まずはリビジョンで絞り込みます。以下のSQLを書くか、『検索』のタブで『revision』を入れて、likeまたは=で検索します。絞り込まないで削除ボタンを押すと記事が消えますので危険です(かならず絞り込んであるか確認します)。

SELECT * FROM `wp〇〇〇_posts` WHERE `post_type` = ‘revision’ ORDER BY `wp〇〇〇_posts`.`ID` ASC LIMIT 30 , 30

このように、リビジョンだけ絞り込まれました。表示列数やorderbyはやりやすいように指定してください。

一個一個削除は大変なので、『ページ表示されている件数分、全部選択』などをつかうとラクです。削除ボタンをおすと・・・

上のほうに実行するSQLクエリがでます。okであれば『はい』を押せば、リビジョンお掃除完了です。プラグイン無しでもできますね

いっぱいたまる前にリビジョン制限するという手もある(wp-config.php)

リビジョンを使わないというのであれば、制限することが可能です。プラグインで制限するとか、無効化して自動保存の分だけ残すみたいな手も。管理人が使っているのは、wp-config.phpに『define( ‘WP_POST_REVISIONS’, false );』と書いてしまうことです。

リビジョンを1個だけ残すときは『define( ‘WP_POST_REVISIONS’, 1 );』と書きます。

あとがき・まとめ

  • WPリビジョンは、プラグインなどなくても、データベースから消せる
  • リビジョン絞り込みしない、または値がpostになっているものを間違って消すと、記事の文章も消えるので注意
  • リビジョン制限をしたい場合はwp-config.phpを使う

まとめるとこんな感じでしょうか。速度に影響するほどの量ではありませんでしたが、ごちゃごちゃしているとわかりにくいので掃除してみました。間違ってpostを削除すると記事が消える危険性があるので、参考程度にとどめてください。


【カテゴリ】- PHP
【タグ】-

関連記事