web-dev-qa-db-fra.com

Désactiver les révisions dans le plugin au lieu de config.php?

Existe-t-il une fonction permettant de définir WP_POST_REVISIONS à partir d'un plugin au lieu de le faire dans config.php? Je pensais faire ceci:

runkit_constant_redefine( 'WP_POST_REVISIONS', 0 );

mais cela crée une dépendance vis-à-vis du runkit en cours de compilation avec PHP, ce que je ne sais pas si c'est habituel/typique.

Je veux désactiver complètement les révisions et j'aimerais que mon plug-in (à utilisation restreinte, à usage spécifique) soit aussi "clé en main" que possible; ne nécessitant pas d'autres réglages ou ajustements manuels.

3
C C
  1. Créer un no-revs.php
  2. Définissez le contenu sur <?php defined('WP_POST_REVISIONS') or define ('WP_POST_REVISIONS', false);
  3. Placez-le dans le Doit utiliser le dossier Plugins situé à wp-content/mu-plugins.

Être averti; Il est recommandé que vous ayez au moins 3 révisions après pour éviter toute perte de données.

0
jgraup

Vous pouvez essayer le filtre wp_revisions_to_keep pour remplacer la valeur de la constante 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 );

Si $num est -1, nous conservons toutes les révisions. Si $num est 0, nous ne les conservons pas.

Pour le désactiver, nous pourrions également essayer de supprimer le support des révisions avec remove_post_type_support () () :

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