その他

投稿の自動保存の停止・無効ができない場合の対処[No80]

スポンサーリンク

自動保存の停止・無効ができなくなり、2日かけて調査してわかったことを共有したいと思い、この記事を書くことにしました。

投稿画面をスクロールして操作すると「以下のバージョンよりも新しい自動保存された投稿があります。」と表示される問題を解決するのが、今回の調査の目的でした。

自動保存されているかどうかの確認は、私の場合、公開済みの記事を開き、何も変更はしないけれど、ページをスクロールして、編集画面の段落の中などでマウスクリックし、1分後「下書きへ切り替え」の箇所が保存中になるかならないかで確認しました。

自動更新の設定が1分なのはWordPressの標準です。変更したければ、wp-config.phpの適所に「define('AUTOSAVE_INTERVAL', 15);」のように設定すれば変更できます。この場合、15秒間隔で自動更新となります。ただし、秒数が1とか2とかだと、サーバーに負荷がかかってしまうため、小さい値に変更する場合は一時的が好ましいでしょう。

自動保存が停止できるか調査した結果と対策

調査結果1

自動保存が停止できるかどうか調査したところ、「自動保存の無効化/削除はできない」という結果が得られました。他のサイトでも言われていることですが、WordPress 5.6でブロックエディターを使っている場合は、この対処ではできないようです。

次のコードをfunctions.phpに記載しても、プラグイン「Disable Gutenberg Autosave」を導入しても自動保存を停止することはできませんでした。


function autosave_off() {
	wp_deregister_script('autosave');
}
add_action('wp_print_scripts', 'autosave_off');

対策1

1日同じ投稿画面を開きっぱなしにすることはないので、自動保存する間隔をwp-config.phpで86400秒(=1日)にしました。(設定する場所は他サイトで詳しく書いてあるので、そちらをご参照下さい。)


define('AUTOSAVE_INTERVAL', 86400);

ここまでの私の設定

・プラグイン「Disable Gutenberg Autosave」
導入しても改善しない為、導入せず。

・functions.php
 クイックドラフトの自動保存停止処理


function remove_dashboard_widget() {
          remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); 
}
add_action('wp_dashboard_setup', 'remove_dashboard_widget');

・wp-config.php(再掲:適所に貼り付ける必要有)


define('AUTOSAVE_INTERVAL', 86400);
define('WP_POST_REVISIONS', false);
define('WP_POST_REVISIONS', 0);

スポンサーリンク

メッセージ「ブラウザー内のこの投稿の下書きが以下のバージョンと異なっているようです。」の対処

※「追記」までお読み下さい。※

自動保存の対処を完了しても、下図のように「ブラウザー内のこの投稿の下書きが以下のバージョンと異なっているようです。」というメッセージが投稿画面に表示され、スクロールなど何のアクションも起こさなくても30~60秒でメッセージが出現する状況でした。

調査方法

このメッセージの出現について調査するにあたって、行ったことは次の3つのことです。

  • 子テーマのfunction.phpを削除して同事象が起きるか、影響していそうなプラグインを無効化させて同事象が起きるか、それぞれ確認する。
  • プラグインを無効化して同事象が改善したら、どのプラグインを有効化したら同事象が発生するか確認する。
  • 事象の発生するプラグインを特定したら、どの設定の時に発生するか、そもそもプラグイン自体が問題なのかなどを確認する。

調査結果2

Advanced Editor Tools (previously TinyMCE Advanced)を無効化したら事象は改善されました。

しかし、このプラグインはpタグやbrタブの制御、表の挿入など、いろいろ役立つものなので、できれば無効化せず、これからも使いたいと思いました。

そこで、プラグインを有効化させ、どう設定を変えたら事象が改善されるか再度調べたところ、「Enable the editor enhancements for:」の「旧エディター (投稿と固定ページの新規追加と編集)」、「Other instances of the Classic (TinyMCE) editor in wp-admin」、「Instances of the Classic editor on the front end of the site」を無効化すると改善しました。

でも、これらの設定を無効化するとエディタが拡張化されない為、表挿入などができなくなります。特に、2番目の「Other instances of the Classic (TinyMCE) editor in wp-admin」は投稿画面で使っていたものでした。

なので、次は「クラシック版の段落ブロックを追加」のチェックを外してみたところ、また事象が改善されました。

ただ、この設定を外すことにも問題があります。下図のようにクラシックエディタが使えなくなってしまう上、

今まで「クラシック版の段落」(クラシックエディター)を使って保存してきた投稿は、「"tadv/classic-paragraph" ブロックはサイトでサポートされていません。そのまま残すか、カスタムHTMLブロックへ変換、また完全に削除してください。」と表示されるようになってしまいます。

スポンサーリンク

こうしてプラグイン設定内のチェックを入れたり外したりを続けていったら、最初に事象が起きた時の設定と同じでも事象が起きなくなりました。

思い当たる操作は、次の項目のチェックを全て外して「変更を保存」し、投稿画面で該当メッセージが表示されないか確認した後、同項目のチェックを入れ直して保存したことです。

考察

プラグインを入れ直すだけでも改善するかもしれません。

そう考えた根拠の1つに、最近このプラグインの名前が変わったという事実があります。設定画面の上部に、「Please note: This plugin was renamed from "TinyMCE Advanced" to "Advanced Editor Tools". The plugin functionality remains the same.」と記載があり、「注意:このプラグインは「TinyMCEAdvanced」から「AdvancedEditorTools」に名前が変更されました。プラグインの機能は同じままです。」と書いてあります。名前が変わったことで、古くから使っている人では今回の事象が発生し、新しく使っている人は発生しないのかもしれないと考えました。

現在の私のAdvanced Editor Tools設定

事象改善後の私の設定です。もちろん、プラグインを有効化しても問題なく使用できています。

スポンサーリンク

他のサイトでは、Classic editorプラグインを使用していたら同事象が発生し、プラグインを外したら改善した、とあったので、相性が悪いのかもしれません。

補足

調べていくと、標準で自動保存を停止できない条件もあるようでした。下記リンク先のサイトに詳しく書かれています。

WordPress:データベースを汚す「自動下書き」を無効にする

追記1

ひとまず解決したと思い、他のプラグインも戻して作業をしていました。

ところが、投稿画面をスクロールしながらコピペして、更新など保存はせず、ブラウザの「戻る」ボタンを押して再度投稿画面を開くと、「ブラウザー内のこの投稿の下書きが以下のバージョンと異なっているようです。」のメッセージがまた表示されました。

今までの調査では行っていませんでしたが、投稿画面で何か文字を入力し、ブラウザの「戻る」ボタンを押して再度投稿画面を開くと、同事象が起こることから、戻るボタンで自動保存が発生していると考えられます。

メッセージ下には「バックアップから復元」が出てきますが、WP-Optimizeでは「自動下書き投稿が見つかりません」となっています。プラグイン「Disable Gutenberg Autosave」やfunciton.phpで再度自動保存停止の設定を行ってもダメでした。

他のサイトでも同じようなことを言っている方がいて、どうやら、戻るボタンを押した時にWordpressが自動保存するのは仕様のようです。(保存先は不明)

WordPress4.6公開!新機能と非推奨まとめ

追記2

追記1を記載してから、しばらくWordPressを利用していると、プラグイン「Advanced Editor Tools (previously TinyMCE Advanced)」のあれこれを行ったせいか、以前より少し改善されたような気がしました。

また、「戻る」ボタンを押した時、バックアップは取られるけど、そのバックアップと「再度その投稿を編集で開いた画面」が同じならば、この「ブラウザー内のこの投稿の下書きが以下のバージョンと異なっているようです。」というメッセージは表示されないのではと推測するようになりました。

そこで、何故調査の時、スクロールやクリックしただけでメッセージが表示されたのか、何故別の投稿画面ではメッセージが表示されない時が多いのか、違いを探してみました。

すると、メッセージがよく表示される方の投稿画面ではエディタで「クラシック」を多用しており、表示されにくい方ではブロックだけだったことがわかりました。

このことから、クラシックエディタをクリックすると、コードがコードエディタで作成され、戻るボタンを押すとそれが保存されるのではないかということ、再度投稿画面を開いた時、表面的には変わっていないように見えても内部で違いがあって、メッセージが表示されるのではないかということが考えられます。

次の画像の青枠がここで言ったクラシックで、赤枠がブロックです。

結論:今回の事象について、今後はブロックを多用した投稿にしていくことで対処していこうと思いました。

関連記事(外部サイト様)

本記事を書くにあたって参考にさせて頂いた外部サイト様の記事や、一部本件について詳しく紹介されている外部サイト様の記事をまとめました。

お時間のある方は、よろしければ是非こちらもご覧下さい。

【wordpress】リビジョンを1クリックで削除する方法【30秒で解決】

【wordpress】記事を書く時に自動保存が有効だとヤバイ【無効にする】

混同しがちなワードプレスの「自動保存」と「リビジョン」の違い

山積するリビジョンを整理する方法

Editing wp-config.php | WordPress.org

ブロックエディタの自動保存を無効

WordPress:データベースを汚す「自動下書き」を無効にする

【WordPress自動保存停止】以下のバージョンより新しい自動保存版があります

ブロックエディターの自動保存を無効化するプラグインの紹介

WordPressのダッシュボードウィジェットを非表示・無効にする方法

「サイトを離れますか」と毎回出るようになりました

WordPressのダッシュボードウィジェットを非表示・無効にする方法

今日の一言

WP-Optimizeが便利です。

最後までお付き合いいただきありがとうございます!

この情報が誰かの役にたてれば幸いです。

スポンサーリンク

-その他