【wordpress】記事を書く時に自動保存が有効だとヤバイ【無効にする】
wordpressを使ってブログを運営しているんだけど、記事数もそこそこ多くなってきてリビジョンが増えてきた、ぶっちゃけ使わないから自動保存機能いらないんだけどどうすればいい?
サイトを高速化してみよう
記事の自動保存のメリットとデメリット
WordPressでは記事を編集していると自動で保存してくれる機能がデフォルトで有効になっています。
どれだけ自動保存されたかはリビジョン回数として確認することが可能(上記画像)、リビジョンとして保存されたデータを使ってバージョン管理することができます(復元できる)
そもそも自動保存をデフォルトで有効にするメリットって何でしょうか?デメリットについても考えてみましょう。
メリットはバックアップだけ【安心】
実は自動保存を有効にするメリットはバックアップ機能として使えるだけ。
おっちょこちょいな方にはかなりオススメかもしれません、でもメリットはこれだけなんですよね。
デメリットはDBの肥大化【ヤバすぎ】
デメリットは何かというとサイトが重くなることです。自動保存されたデータはどこへいくのか考えれば分かる事、当たり前ですがデータベースに保存されています。
差分ではなく1つの記事として保存されている点に注意、つまり、リビジョン回数27ということは同じような記事のデータが27個あるということ。
となるとかなりのデータ量です、1記事の平均リビジョン回数が20だとして投稿した記事が100記事あるとすると、単純計算で1000~2000記事分くらいのデータがデータベース上にあることになるんです。そりゃサイトも重たくなるわ。
リビジョンの影響はこんなところにも【確認可能】
各記事は連番で管理されているのでそれぞれ記事IDが存在します。
記事一覧ページの記事タイトルにマウスカーソルを合わせると画面左下にリンクが表示されます、リンクの
?post=〇〇
の〇〇が記事IDになります。自動保存機能を無視してwordpressでブログを運営していると下記のようになる。
100記事すら投稿していないのに記事ID2173はやばすぎでしょ、こんな感じで記事IDも汚染されるので私は自動保存機能いらないと思います。
自動保存を無効にする方法【プラグイン不要】
メリットとデメリットを理解した上で自動保存機能はいらないという方は無効にしてしまいましょう、方法についても解説します。
プラグインを使うのもいいですが、セキュリティ的にも不安ですし何よりプラグインを使うことで少なからずサイトは重たくなってしまいます。
ですので、めんどくさがらずに直接コードを書くことをオススメします。
コピペするだけで無効にできる
どのファイルを編集するか?それはもちろん子テーマのファイルを編集します(親テーマだと間違えると大変)
子テーマを使用していない、作ったことがないという方はWordPress初心者は必ず覚えておきたい【子テーマの作り方】を参考に作ってしまいましょう、初心者の方でも簡単に子テーマを作れます。
子テーマのfunctions.phpに下記をコピペすればOKです(位置はどこでもOK)、自動保存を無効にできます。
子テーマ/functions.php
// 自動保存を無効にする処理
function autosave_off() {
wp_deregister_script('autosave');
}
add_action( 'wp_print_scripts', 'autosave_off' );
これで勝手に自動保存されることはありません。
自動保存はいる、でも記事IDの汚染はいやだ【解決策】
「自動保存は無効にしたくない、でも記事IDが汚染されるのは絶対にイヤだ」
こんなニーズもあるでしょう、そんな時は自動保存の間隔を変更してしまいましょう(30分や1時間おきに自動保存するように変更できます)
functions.php
ではなく、wp-config.php
を編集します(wp-admin,wp-content,wp-includesディレクトリと同じ階層にある【一番上】)、間違えるとサイトが真っ白になったりしますので細心の注意を払いましょう。自動保存の間隔を調整する処理
/** 30分おきに自動保存を実行する 60秒×30 = 1800(30分の場合) */
define('AUTOSAVE_INTERVAL', 1800);
wp-config.php
define('WP_DEBUG', false);
/** 30分おきに自動保存を実行する 60秒×30 = 1800(30分の場合) */
define('AUTOSAVE_INTERVAL', 1800);
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
上のコードですと4行目の位置に処理をコピペすればOKです、実際にはwp-config.php
の85行目あたりにコピペです(環境によって異なる可能性あり)
時間についてはお好みで数字を変えていただければと思います。
おまけ:リビジョン機能を無効にしたい【コピペOK】
「自動保存はいるけどリビジョン機能はいーらね」
こんなニーズにも答えます、そんな時はリビジョン機能を無効にしてしまいましょう。
functions.php
ではなく、wp-config.php
を編集します(wp-admin,wp-content,wp-includesディレクトリと同じ階層にある【一番上】)、間違えるとサイトが真っ白になったりしますので細心の注意を払いましょう。リビジョン機能を無効にする処理
define('WP_POST_REVISIONS', false);
コピペする位置は前述した「自動保存の間隔を調整する処理」をコピペした位置と同じところです。
コピペすると記事編集画面のリビジョンの項目が消えます(機能が無効になる)
おまけ:リビジョン回数を制限したい【コピペOK】
こんなニーズもあるかも、そんな時はリビジョンの回数に制限をかけてあげればOKです。
functions.php
ではなく、wp-config.php
を編集します(wp-admin,wp-content,wp-includesディレクトリと同じ階層にある【一番上】)、間違えるとサイトが真っ白になったりしますので細心の注意を払いましょう。リビジョン回数を制限する処理
/** リビジョンを10回に制限する */
define('WP_POST_REVISIONS', 10);
コピペする位置は前述した「自動保存の間隔を調整する処理」をコピペした位置と同じところです。
10の部分を変更する事で任意の数で制限をかけることが可能です、お好みでどうぞ。
筆者の設定公開します
どれが一番いいのか迷っている方の参考になればと思いまして、私の設定を教えておきますね。
- 自動保存機能を無効
- リビジョン機能を無効
wordpressで編集している時はプレビューしながらこまめに下書き保存しているので必要ありませんし、wordpressを編集する時点で別のところで下書きを書き終えているので消えても痛くもなんともないからです。
純粋に使わないから、というか使ったことないです。個人的に使用する分には必要ないと思っています。
こんな感じですね、参考にしてみてください。
無駄なリビジョンを削除する【サイト高速化】
自動保存で蓄積したリビジョンデータはデータベースを肥大化させサイトを重くします、使わないデータがサイトの足を引っ張ってるのはバカバカしいの削除してしまうことをオススメします。
不要なリビジョンを削除することでサイトを軽くしパフォーマンスをあげることが可能です(読み込みスピードが早くなる)、削除方法については下記の記事が参考にしてください、初心者でも簡単にできる方法について詳しく解説しています。
終わりに【自動保存はなくてもOK】
いかがでしょうか?
自動保存についてかなり考えさせられたのではないでしょうか。
記事IDが4桁以上になるのは見ていて気持ちいいものではありませんし、良いことでもありません。wordpressを使用している方は記事IDやリビジョン回数を確認して一旦見直してみましょう、私のように両方とも無効にするのもアリですよ。
以上になります。
他の人が読んでいる記事
飲食→派遣→IT系ベンチャーに転職。
本業をベーシックインカムとし、やりたい事に挑戦するWebエンジニア。