web-dev-qa-db-ja.com

Config.phpの代わりにプラグインでリビジョンをオフにしますか?

Config.phpで行う代わりにプラグインからWP_POST_REVISIONSを設定する機能はありますか?私はこれをすることを考えていました:

runkit_constant_redefine( 'WP_POST_REVISIONS', 0 );

しかしそれはPHPでコンパイルされているrunkitへの依存を置きます。

私はリビジョンを完全にオフにしたいのですが、私の(狭い用途、特別な目的の)プラグインはできるだけ "ターンキー"にして欲しいのです。他の調整や手動調整は不要です。

3
C C
  1. No-revs.phpを作成する
  2. 内容を<?php defined('WP_POST_REVISIONS') or define ('WP_POST_REVISIONS', false);に設定します
  3. wp-content/mu-pluginsにある Must Use Pluginsフォルダ に配置します。

警告されます。 データの損失を避けるために、少なくとも3回の投稿リビジョンを持つことをお勧めします

0
jgraup

wp_revisions_to_keepフィルタを試して、WP_POST_REVISIONS定数の値を上書きすることができます。

/**
 * Turn off revisions
 */
add_filter( 'wp_revisions_to_keep', function( $num, $post )
{
    //---------------------------------
    // Adjust the $num to your needs
    //---------------------------------
    if ( post_type_supports( $post->post_type, 'revisions' ) )
        $num = 0;

    return $num;

}, PHP_INT_MAX, 2 );

$num-1の場合、すべてのリビジョンを保持します。 $num0であれば、それらを保持しません。

オフにするには、リビジョンsupport remove_post_type_support() で削除します。

/**
 * Remove revisions support for posts
 */
add_action( 'init', function()
{
    remove_post_type_support( $post_type = 'post', $supports = 'revisions' );
} );
3
birgire