早いとこ設定しておこう!WordPressのリビジョンの設定方法

リビジョンの設定アイキャッチ画像 WordPress

リビジョンってプレビューした数でしょう?違うの?

リビジョンはエディターの右側にありプレビューをすると表示されるようになります。そのため私はプレビューの回数だと勘違いしており、リビジョンの数が30件以上になると「頑張って書いたなー」と自分を労っていました。

しかし、リビジョンの数を放っておくとサーバーを圧迫することがあると知って、急いで保存回数を設定した経験があります。

このページではWordPressのリビジョン機能について解説します。

リビジョンは前に戻すことができる機能

WordPressのリビジョンは、投稿やページの編集履歴を保存し、以前の保存状態に戻すことができる機能です。リビジョンはデフォルトで有効になっており、編集履歴の追跡や誤った編集の取り消しに役立ちます。

WordPressはデフォルトでリビジョンを有効にしており、投稿やページを保存するたびに自動的にリビジョンが作成されます。これにより、変更の追跡や編集履歴の確認が容易になります。

リビジョンはデータベースに保存され、各リビジョンにはタイムスタンプ、編集者、変更内容などの情報が含まれます。編集画面で「以前のバージョンを参照」または「以前の編集を復元」を選択すると、特定のリビジョンに戻すことができます。

適切なリビジョンの保存数は5回くらい

リビジョンによって過剰なデータベースサイズが発生することがあります。そのため、リビジョンの保存数の設定や自動削除が必要になります。

リビジョンの保存回数には、編集頻度やデータベースサイズ、利便性と安全性などの要素を考慮する必要があります。一般的な目安として5から10回程度のリビジョンを保存することが多いですが、要件や運営方針に応じて調整することが重要です。

WordPressはデフォルトではリビジョンの自動削除を行いませんが、プラグインやカスタムコードを使用することで自動削除を設定できます。

例えば、「Revision Control」というプラグインを使用することで、リビジョンの保存回数を制限したり、古いリビジョンを自動的に削除したりすることが可能です。ただし、プラグインの更新が10ヶ月前で止まっており現在のバージョンWordPress6.2には未検証です。

PHPコードでリビジョンの保存数を設定しよう

WordPressでは、phpコードを使用してリビジョンの設定を変更することができます。リビジョンの設定を変更するには、wp-config.phpファイルにコードを追加します。次のコードを追加することで、リビジョンの保存回数を指定することができます。

例えば、define(‘WP_POST_Revision’ 5); と指定することで、保存するリビジョンの数を5回に設定できます。

// リビジョンの保存回数を指定する
define('WP_POST_REVISIONS', 5);

このコードを「define(‘WP_DEBUG’, false);」の下に書いて頂くか、「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」の上に書きます。

このあと、いちど何か文字を書き直すなど変化させて保存しないとリビジョンの保存数が指定の数に直りません何も書き加えたり、文字を変えずに「公開」(上書き)してもリビジョンの保存数に変化はありませんよ。

例えば、リビジョンの保存数が42件あったします。そのページを開いて上書き保存するだけではリビジョンの保存数が減りません。42件のままです。コンマの一つでも書き加えて保存すると指定した5件に減ります。

リビジョンデータはプラグインか手動で削除する

リビジョンの保存数を設定することができました。今後はそれ以上は増えて行きませんが、既に作成されたデータを消すことができません。過去のリビジョンデータを消すにはプラグインを使用するかデーターベスにアクセスして直接消す意外にありません。

プラグインを使う場合は「WP-Optimize」「Optimize Database after Deleting Revisions」があります。リビジョンデータを消す意外にもデータベースの整理やコメントやトラックバックなども削除することができます。

プラグインを使わない場合は、データーベースのwp_postファイルでSQLコマンドを使って削除します。このコードは全て削除されますよ。

DELETE FROM wp_posts WHERE post_type = 'revision';

ChatGPTが教えてくれた「リビジョンの自動削除コード」はできないもよう

ちなみにここからはChatGPTが教えてくれたphpコードです。試したところダメでした。だけどもわたしにはPHPの知識がないのでどこが間違っているかわかりません。参考に載せます。知っている方は、楽しんでください。

*****ここから*****

リビジョンの自動削除も併せて設定することができます。

// リビジョンの自動削除を有効にする
define('WP_POST_REVISIONS', 3); // 保存するリビジョンの数

// リビジョンが保存される度に古いリビジョンを自動的に削除する
function custom_remove_old_revisions( $post_id ) {
    $revisions = wp_get_post_revisions( $post_id );
    $limit = WP_POST_REVISIONS;

    if ( count( $revisions ) > $limit ) {
        $delete = array_slice( $revisions, $limit );
        foreach ( $delete as $revision ) {
            wp_delete_post_revision( $revision->ID );
        }
    }
}
add_action( 'wp_save_post_revision', 'custom_remove_old_revisions' );

上記のコードでは、3回までリビジョンを保存し、保存回数を超えると古いリビジョンが自動的に削除されます。WP_POST\REVISIONSの値を変更することで、保存するリビジョンの数を調整できます。

注意点として、リビジョンの自動削除を設定する前に、必要なバックアップを取得しておくことをお勧めします。また、カスタムコードの追加にあたっては、注意深く行いましょう。

*****ここまで*****

リビジョンデータが溜まってから削除するよりも、ワードプレスをインストールしたらすぐにでもリビジョン件数を指定したほうが面倒くさくないかも知れませんね。

みきみかん
みきみかん

実はこの記事はAIと会話しながら書いた記事です。