WordPressには記事のBackup機能でリビジョン管理の仕組みがあります。
いわゆる以前の状態を記録しておき、過去の状態に戻せる機能です。
これ自体は便利でいいと思いますが、何故かリビジョン数に制限がなく無限に保存されます。
そんなに要らんだろって思う人は、コードを追加することでリビジョン数を制限することができます。
理論的な話をすると無駄なリビジョンがDBを圧迫するとサイトのパフォーマンスは低下します。
◆ 安全にfunctions.phpをカスタマイズする方法
functions.phpの修正に不安がある人は以下を参考にしてください。
functions.phpを直接修正するのは不具合時の対処やテーマ更新時に大変ですよね。それでも手間を減らす方法もあり、ここで紹介する方法と以下の記事の内容でそこそこ安全に改造できます。 拡張用のfunctions.phpを新規作成する 最初にカスタマイズ用のコードを記述するためのphpファイルを作成します。配置するディレクトリとファイル名は好みで大丈夫です。とりあえず、ここではfunctions.phpと同じディレクトリにextend-functions.phpとして作成し...
コードを追加する
functions.phpとかに以下のコードを追加します。returnで返す数字がリビジョン数の最大数になります。
つまり、2と書けばリビジョンは2個まで作成されます。よって3個目のリビジョンが生成されると古いのが消えます。
// リビジョン数を制限
add_filter('wp_revisions_to_keep', function ($content) {
return 2;
});
既に作成されたリビジョンの整理
記事を更新すると新しく設定したリビジョン数に合わせて、古い履歴は全て消えます。
仮に設定値を2個に制限した後、リビジョン数が10個の記事を更新すると古い履歴は勝手に消えます。
なお、各記事の更新が手間で一括で消した場合はプラグイン等を利用する必要があります。
めんどいので解説しませんがWP-Sweepを使えば一括で不要リビジョンの削除が可能です。
WP-Sweepは未使用時にプラグインを無効化しておけば、常用のサイトパフォーマンスには影響しません。
自動保存の無効化 (おまけ)
そもそもリビジョンの自動保存が鬱陶しい場合、以下のコードを追加すると自動保存が無効化されます。
ただ、完全に無効化されてないのか、稀に記事編集時に以前のバージョンがありますって表示されることがあります。
// 自動保存の無効化
add_action('wp_print_scripts', function () {
wp_deregister_script('autosave');
});
あとがき
リビジョン数の制限はwp-config.phpに記述して制限する方法もあります。
僕はテーマファイルに書くほうが楽だったのでテーマ側にコードを追加してます。
この記事は参考になりましたか?
コメント