WordPressで投稿の自動保存とリビジョンをコントロールする
公開日:2014年5月27日
最終更新日:2014年7月13日
WordPressには、投稿記事を編集している時に働く自動保存機能や、過去の更新履歴を保存するリビジョン管理機能があります。ブログ運用にこれらの機能は便利ですが、余計なリビジョンを増やしたくないこともありますので、その設定方法を解説します。
【コンテンツ】
【記事執筆時の環境】
WordPress 3.9.1
リビジョン管理の概要
リビジョン管理機能はいわゆる世代管理を提供し、投稿記事を以前の内容に復元することができます。
各リビジョンの内容を確認したり復元するには、
投稿の編集画面で、[公開]エリアにある[リビジョン:?表示]の"表示"をクリックします。
表示するリビジョンを切り替えるには、[前へ][次へ]ボタンをクリックするか、スライダーをドラッグして動かします。
リビジョンは記事を更新するたびに増え、デフォルトではリビジョン最大保存数は無制限となっています。
そのため下図のように不必要なリビジョンがどんどん増えていくと、データベースの肥大化をまねきます。
また投稿IDはリビジョンごとに消費されるため、投稿した記事数に比べて投稿IDは大きな数値をとるようになってしまいます。
自動保存の概要
自動保存機能により、投稿編集中に一定間隔でデータベースに内容を保存します。
デフォルトでは保存インターバルは60秒となっています。
自動保存された投稿内容も1つのリビジョンとなりますが、保存するたびにリビジョンが増えるわけではありません。自動保存用のリビジョンは最大1つであり、常に上書きとなります。
自動保存されたリビジョンは、[自動保存]がついて区別できます。
リビジョン数の制限方法
リビジョン数を制限するプラグインも存在しますが、「wp-config.php」に1行追加するだけで済みますのでそちらを紹介します。
例えば、リビジョン数を3に制限したい場合は、以下のコードを追加します。
追加する場所は、「require_once(ABSPATH . 'wp-settings.php');」より前にしてください。
1 |
define('WP_POST_REVISIONS', 3); |
数値部分を'false'もしくは'0'にすると、履歴としてのリビジョンを全く保存しなくなります。
ただし自動保存のリビジョンは保存します。
数値部分を'true'もしくは'-1'にすると、すべての履歴を保存しリビジョン数は無制限となります。これはデフォルト設定です。
自動保存インターバルの変更方法
デフォルトではインターバルは60秒ですが、これを変更するには「wp-config.php」に1行追加します。これも「wp-settings.php」を読み込む前に追加してください。
1 |
define('AUTOSAVE_INTERVAL', 秒数); |
自動保存は編集途中にブラウザがクラッシュしたり、ネット回線が切れたりした場合のバックアップとして便利な機能ですので、この機能は有効活用したいものです。
前にも述べたように、自動保存で作成されるリビジョンは何回保存されようが1つだけです。
それでもどうしてもこの機能を停止し、リビジョン数を少なくしたい場合は、functions.phpに以下のコードを記述します。
1 2 3 4 |
function disable_autosave() { wp_deregister_script('autosave'); } add_action('wp_print_scripts', 'disable_autosave'); |
既に作成されたリビジョンを削除する方法
リビジョンを全く作成しない設定にしておけば別ですが、通常はブログを運用していると不要なリビジョンが増えていくものです。
そんな時はプラグインを使って一括で削除します。
プラグインには「Delete Revision」もありますが、改良版である「Better Delete Revision」を紹介します。
プラグインをインストールし有効化したら、[設定]-[Better Delete Revision]をクリックします。
[Check Revision Posts]をクリックします。
冗長な投稿リビジョンの一覧が表示されますので、
[Yes,I would like to delete them!(A Total Of ?)]をクリックします。
削除が完了すると、以下のようなメッセージが表示されます。
スポンサーリンク