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


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

  関連記事

【ユーザーデータ取得】WordPress定義済み関数の『get_userdata()』『wp_get_current_user()』ってどのように違うの?
【WordPressで覚えよう】PHP「->」(オブジェクト演算子/アロー演算子)・「=>」(ダブルアロー演算子)の違い
WordPressユーザーが覚えると便利な条件分岐~投稿記事・固定ページ指定して表示/非表示
【WPカスタマイズ】プラグイン不使用、テーマに関連記事表示機能を実装しPV・滞在時間を上げる
侍エンジニア塾ブログにあったPHPコードをシンプルに書いてみる(foreachで配列キーや値取得・continueで空要素スキップ)
【WordPressでPHPプログラムを学習シリーズ1】用語:PHP変数・関数・定数を、WPの機能を通して覚える
【超危険】WordPressデータベースリビジョンお掃除
WordPress一覧表示で、特定のカテゴリ/投稿を表示しないようにするには?→category_not_in・post_not_inで
【別に止めなくてOK】WordPressサイトなどに、アメブロ・fc2など無料ブログの更新情報を表示して連携する方法
【PHP etc.プログラム学習サイトコードコピペ】全角引用符・バッククオートが入ってて動かない件に注意
【WP記事取得クエリ・プラグイン無し】お知らせなどに使える、ショートコードで特定カテゴリ記事を表示プログラム
【PHP】GD・ImageFilterで、画像の色合いを変えてみる