パソコンで、WordPressを使って、長文のブログを書いていました。
しかし、途中で間違えて、関係のないメニューをマウスでクリックしてしまったら、別ページへ遷移・・・。
急いで、ヒストリーバックするも、書いていた記事はサッパリ消えて真っ白。頭の中も真っ白。
2度と同じことがないように、WordPressのリビジョンを確認してみるも、なぜかタイマー式で自動で保存してくれない。
define('AUTOSAVE_INTERVAL', 1800); //自動保存の間隔を制御する設定
こんな定数も設定できると書いているブログもあったけど、自分の環境では「下書き保存」ボタンを押すまで、リビジョンに追加されない。
実に困りました。
しかし、それなら、自動で「下書き保存」ボタンを押してもらえばいいじゃん!ということで、
管理画面で、javascript を実行できないか調べてみる。
↓こちらのサイトを見てみると、
できることがわかったので、コードを書きました。
//管理編集画面のオートセーブ機能
function admin_func() {
echo '<script>var auto_save = function(){if(document.getElementById("title").value != ""){var ele = document.getElementById("save-post");if(ele != null){ele.click();}}};setInterval(auto_save, 60000);</script>';
}
add_action('admin_head-post-new.php', 'admin_func');
add_action('admin_head-post.php', 'admin_func');
これを 外観 → テーマエディタ → テーマのための関数(function.php) に追加して、投稿画面だけに反映させます。
これによって、記事にタイトルが書かれていれば、
ブログを公開するまで表示される「下書き保存」ボタンが1分毎に押されます。
これで、間違えて別ページへ遷移した時のダメージがだいぶ減るかと思います。