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

      2073文字

今回は、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を削除すると記事が消える危険性があるので、参考程度にとどめてください。

WordPressサイト制作&リニューアル・機能開発サービス | アトリエSS


【カテゴリ】 - PHP・データベースetc
【タグ】 -

  関連記事

【別に止めなくてOK】WordPressサイトなどに、アメブロ・fc2など無料ブログの更新情報を表示して連携する方法
【WordPress条件分岐】is_singleとis_singularって違うの?→idやスラッグ指定、投稿タイプ指定の面で違いが
【PHPプログラミング】メモ帳に適当にメモったPV数値をexplodeで配列にし、array_sumで合計値を計算する
WordPress記事一覧ページの『本文からの抜粋』を表示する関数と、その文字数の調整方法をチェックする
WPデータベースの余計なデータには何がある?事例と対処方法・あるとイヤなケース
【画像つきでわかりやすい】WordPressで使われるデータは、MySQLデータベースに、どのように格納されているの?
【PHP etc.プログラム学習サイトコードコピペ】全角引用符・バッククオートが入ってて動かない件に注意
WordPressの記事IDで判定して転送~PHP・headerとget_the_IDで対応、the_IDとの挙動の違いも
【WordPressでPHPプログラムを学習シリーズ1】用語:PHP変数・関数・定数を、WPの機能を通して覚える
WordPressユーザーが覚えると便利な条件分岐~投稿記事・固定ページ指定して表示/非表示
WordPress一覧表示で、特定のカテゴリ/投稿を表示しないようにするには?→category_not_in・post_not_inで
【WPユーザー名バレ対策】ユーザー名表示からPHP・preg_matchでリダイレクト(wp-json/wp/v2/usersなど)