【超危険】WordPressデータベースリビジョンお掃除
| 更新: 2024/02/10 | 2031文字
今回は、WordPressのリビジョンが、データベースに大量にたまっていたのでお掃除します。操作はプラグインではなく、phpmyadminから直接操作。SQLクエリを書いてやってもよさそうです。ただし、操作を間違えると記事が消えてしまう(超危険)ので、データベース操作に自信の無い方は一人で行わないでください(不安ならバックアップなども)。『リビジョンとは・データベースのどこにあるか・消し方・制限するには』などを、さっそく見ていきましょう。
目次
WordPressリビジョンとは?
WPに搭載されている『保存済み下書き・公開済み投稿の更新記録を保存』する機能のことです。単語的な意味は『改訂』です。 使い方によっては便利で、保存されたリビジョンから、投稿の過去バージョンを復元できたりします(リビジョンが複数あれば、複数バージョンから選んで復元、みたいなこともできます)。
しかし、放置するとどんどんデータベース(wp〇〇〇_postsテーブル)にたまっていくので、人によっては回数を制限したり、無効にしたりもすることがあります。
◆リビジョン | WordPress.org
https://ja.wordpress.org/support/article/revisions/
◆(当サイト過去記事)WordPressのリビジョンを、プラグインで制御する方法(revision control)
/6171/wp-revision-control-plugin/
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を削除すると記事が消える危険性があるので、参考程度にとどめてください。