web-dev-qa-db-ja.com

WordPressの自動保存コントロール

自動保存の動作を制御するためのWordPressのフィルタや設定を、できれば投稿タイプ別に探しています。データベースを照会すると、私たちの自動ドラフトは1週間しか戻ってこないのがわかりますが、WordPressにはこの動作を制御するものがありますか。可能であれば、投稿の種類によっては自動ドラフトを90日以上にすることができますか。

私は誤解しているかもしれませんが、私の経験では、新しい投稿を作成したとき、そのレコードは自動ドラフト状態にあり、別の投稿はpost-new.phpを更新したときに作成されます。この記事は、ユーザーごとに1つの自動保存のみを意味するようです...

https://codex.wordpress.org/Revisions

おそらく、自動保存と自動ドラフトとしての保存は関係ありません。自動ドラフト記録をもっと長く維持する方法にもっと興味がありますが、これは自動保存とは無関係です。ご指導ありがとうございます。

4

自動保存:

自動保存とは、編集中に投稿をバックグラウンドで自動的に保存することです。したがって、これはリビジョンとは異なり、投稿ごとに1ユーザーあたり1つの自動保存しかありません。これはドキュメントからです:

特定の投稿に対して、ユーザーごとに最大1つの自動保存しかありません。新しい自動保存は古い自動保存を上書きします。

AUTOSAVE_INTERVALファイルでwp-config.php定数を定義することで、自動保存がどのくらい早く行われるかを操作できます。たとえば、編集中の投稿/ページを30秒ごとに自動保存するには、次のようにします。

define('AUTOSAVE_INTERVAL', 30 );

変更を保存する前に、ネット接続が切断されたりコンピュータが誤ってオフになったりした場合に便利です。自動保存間隔を30秒に設定すると、最大30秒分の編集しか失いません。

改訂

改訂とは、投稿に加えた変更をいくつ保持するかを決定することです。したがって、リビジョンがオンになっていて、投稿を24回保存すると、WordPressは24番目のバージョンを元の投稿として保持し、その他の23バージョンを補正として保持します。

注:WordPressは自動保存されたバージョンをリビジョンとして保持しません。意図的に([保存]または[公開]をクリックして)行った保存のみがリビジョンとして保持されます。

デフォルトでは、WordPressはリビジョンが有効になっている場合、無限のリビジョンを保持します。あなたが指定しない限り、WordPressはいかなるリビジョンも自動的には削除しません。ただし、この動作はWP_POST_REVISIONS定数または wp_revisions_to_keep filterを使用して変更できます。

たとえば、最新の22個のリビジョンのみを保持するには、wp-config.phpファイルに次のように設定します。

define( 'WP_POST_REVISIONS', 22 );

またはテーマのfunctions.phpファイルまたはカスタムプラグインで次のコードを使用します。

add_filter( 'wp_revisions_to_keep', 'wpse257846_num_revisions_to_keep', 10, 2 );
function wpse257846_num_revisions_to_keep( $num, $post ) {
    // you may use the $post variable to manipulate this number as needed
    if( 'my_custom_post' == $post->post_type ) {
        // for 'my_custom_post' post type, keep last 100 revisions
        // this is only about how many revisions to keep,
        // not about how old they are
        // to decide how old revision you want to keep,
        // you need to make more complex query about date here 
        return 100;
    }
    if( 'my_most_important_post' == $post->post_type ) {
        // returning -1 means WordPress will never delete revisions
        // for 'my_most_important_post' post type
        return -1;
    }
    // if for all other post types we want to keep just the last 22 revisions
    return 22;
}
2
Fayaz