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

この記事は約5分で読めます。
記事内に広告が含まれています

WordPress ロゴ

こんにちは、さち です。

先日、WordPress のデータベースを見ていると、やたら「自動下書き」が保存されていることに気づきました。

これらの自動下書き、一度も活用したことがないですし、正直ゴミデータが増えているだけのように感じます。

これ以上データベースに「自動下書き」が増えないように、WordPress をカスタマイズしてみます。

スポンサーリンク

「自動下書き」ができる原因

WordPress を初期設定のまま使っていると、データベース(wp_post)に「自動下書き」が大量にできます。下図の「post_status」が「auto-draft」のもの、「post_name」が「○-revision-v○」や「○-autosave-v○」となっているのものがそれです。

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

このような「自動下書き」ができる原因となる WordPress の機能は、次の3つ。

  • 自動保存(執筆中の自動バックアップ)
  • リビジョン(記事のバージョン履歴)
  • ダッシュボード(クイックドラフト)

不要な自動下書きがデータベースに溜まらないようにするには、これらの機能を無効にする必要があります。

「自動下書き」ができないようにする方法

「自動保存」を無効にする

私は執筆中の記事の自動バックアップをブラウザ側で取っています。WordPress の自動保存は必要ないので無効にします。

  1. WordPress の管理画面を開き、「外観」→「テーマエディター」と進みます。
    WordPress テーマエディター
  2. テーマのための関数「functions.php」を開きます。子テーマを使うテーマの場合は、子テーマの functions.php を開きましょう。
    WordPress の functions.php
  3. functions.php に下記の内容を追記します。
    function disable_autosave() {
      wp_deregister_script('autosave');
    }
    add_action( 'wp_print_scripts', 'disable_autosave' );

これで、記事執筆中の自動保存は停止されます。

新規投稿の記事を書くときに行われる初回の自動下書きは避けられませんが、下書き/公開時はこの自動下書きに上書き保存されます。そのため、無駄に自動下書きが残ったり増えたりすることはありません。

「リビジョン」を無効にする

記事を更新(再編集)した時にできるリビジョン(バージョン履歴)を無効にします。

  1. サーバー上にあるファイル「wp-config.php」を編集します。通常、ファイルは WordPress をインストールしたディレクトリ(フォルダー)にあります。
    WordPress の wp-config.php
  2. wp-config.php に下記の内容を追記します。ただし、追記場所は require_once(ABSPATH . 'wp-settings.php'); より前でないといけません(最後尾に追記するのはダメ)。
    define('WP_POST_REVISIONS', false);
    
    //省略
    
    /** Sets up WordPress vars and included files. */
    require_once(ABSPATH . 'wp-settings.php');

これで、リビジョン機能は停止します。

「クイックドラフト」を無効にする

クイックドラフトの自動下書きは、ダッシュボードを開くだけで作られます(クイックドラフトに触れなくても)。「表示オプション」でクイックドラフトを隠してもダメです。

「クイックドラフト」は、「ダッシュボード」ページにある機能で、アイデアや下書きを素早く書くためのものです。

「クイックドラフト」の自動下書きを無効にするには、クイックドラフトの機能自体を停止するしかありません。クイックドラフトが一切使えなくなるので、注意して下さい。

  1. WordPress の管理画面を開き、「外観」→「テーマエディター」と進みます。
    WordPress テーマエディター
  2. テーマのための関数「functions.php」を開きます。子テーマを使うテーマの場合は、子テーマの functions.php を開きましょう。
    WordPress の functions.php
  3. functions.php に下記の内容を追記します。
    function disable_quickpress() {
    	remove_meta_box('dashboard_quick_press', 'dashboard', 'side');
    }
    add_action('wp_dashboard_setup', 'disable_quickpress');

これで、クイックドラフトの機能は停止します。ダッシュボードを開いても自動下書きが作られることはありません。

それでも作られる自動下書き

前述3つの方法でそれぞれの機能を停止。それでも、自動下書きが作られてしまうことがあります。

それは、「公開済み」や一度「下書き保存」した記事を再編集している時に「プレビュー」を使ったときです。

おそらく、プレビューをするために編集中の記事を一旦データベースに保存したいけれど、プレビューなので更新前のデータに上書きするわけにはいかない。だから、プレビュー用のデータとして新たな自動保存(autosave)を作るのだと思います。プレビューの仕様上、仕方ありません。

ただし、同じ「プレビュー」でも、新規記事のプレビューは大丈夫です。新規記事は、書き始めた時点で自動下書き(auto-draft)が作られて、プレビューにはこの自動下書きを利用するからです。逆に言えば、新規記事のバックアップはプレビュー時に行われるわけですね。

また、投稿予約をした記事を公開前に「投稿をプレビュー」する場合も大丈夫です。データベースに保存されている内容をそのまま表示するだけだからです。

自動下書きを作りたくない人は、公開済み記事を再編集している時にプレビューを使わないようにしましょう。

ちなみに、一度下書き保存した記事の再編集の場合は、もう一度下書き保存して「投稿一覧」から「プレビュー」をクリックすれば、データベースを汚さずにプレビューできます。

コメント

タイトルとURLをコピーしました