WP Total Hacksの”自動保存を無効”は非推奨になります!

WP Total Hacksには自動保存を無効化する機能があります。

WP Total Hacks – 20項目以上のカスタマイズができるWordPressプラグイン | firegoby

この自動保存の無効化についてWordPress 3.3以降のバージョンで不具合があることがわかったので共有しときます。

不具合内容

自動保存の無効化は以下のコードを実行することで実現しています。

wp_deregister_script('autosave');

この”自動保存を無効”を使用するとデバッグモードで以下のような警告が出ます。
(WordPress 3.3以降)

Notice: Undefined index: autosave in /Users/miyauchi/www/wp-latest/wp-includes/class.wp-scripts.php on line 163

Notice: Trying to get property of non-object in /Users/miyauchi/www/wp-latest/wp-includes/class.wp-scripts.php on line 163

この警告は、autosaveというスクリプトが未定義なのに、それに依存関係がある別のスクリプトがコールされたよっていう警告のようです。

対処方法

残念ながら無いです。
ネット上ではいろいろと書かれていますが、どれも気持ちの悪い方法でした。

今後は自動保存の無効化は非推奨とします。

次回のアップデートで、”自動保存を無効” のところに非推奨と表示するように修正します。

本来なら機能そのものを消したいところですが、それをするとアルファベットの大文字だらけのメールがたくさん来そうで怖いので(笑)、機能自体はしばらくは残しておきますが、ほとぼりが冷めた頃に削除すると思います。

理由

どうやら、WordPress 3.3以降の修正で自動保存のJavaScriptに別の何かの機能が依存関係があるようになったみたいです。

Tracでは、以下の様なコメントとともにクローズされていました。

Autosave performs several tasks on the edit/write screen, not a good idea to disable it by removing the script. If the purpose is to stop saving post revisions, there’s a constant for that.

意訳するとこんなかんじかな。

自動保存は投稿画面でいくつかの機能を提供しているので、このスクリプトを無効化するのはいいアイディアではないよ。
リビジョンが増えるのが嫌ならリビジョンの定数を使ってね。

#20912 (Php Notice for autosave in DEBUG mode when disabling autosave) – WordPress Trac

WP Total Hacksでは”リビジョンコントロール”という機能がありますので、そちらを使ってください。

ちなみにWP Total Hacksは、WordPress 3.1の時にリリースしたんですが、こういうの追いかけるのほんっとめんどいです。><