Config.phpで行う代わりにプラグインからWP_POST_REVISIONSを設定する機能はありますか?私はこれをすることを考えていました:
runkit_constant_redefine( 'WP_POST_REVISIONS', 0 );
しかしそれはPHPでコンパイルされているrunkitへの依存を置きます。
私はリビジョンを完全にオフにしたいのですが、私の(狭い用途、特別な目的の)プラグインはできるだけ "ターンキー"にして欲しいのです。他の調整や手動調整は不要です。
<?php defined('WP_POST_REVISIONS') or define ('WP_POST_REVISIONS', false);
に設定しますwp-content/mu-plugins
にある Must Use Pluginsフォルダ に配置します。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
の場合、すべてのリビジョンを保持します。 $num
が0
であれば、それらを保持しません。
オフにするには、リビジョンsupport を remove_post_type_support() で削除します。
/**
* Remove revisions support for posts
*/
add_action( 'init', function()
{
remove_post_type_support( $post_type = 'post', $supports = 'revisions' );
} );