web-dev-qa-db-fra.com

Supprimer les règles de réécriture générées par le plugin lors de la désactivation

J'ai un plugin simple comme celui-ci

add_action('generate_rewrite_rules', function ($wp_rewrite)
{
    $wp_rewrite->rules = xxx + $wp_rewrite->rules;
});

if (is_admin())
{
    register_activation_hook( __FILE__, function() {
        flush_rewrite_rules(FALSE);
    });

    register_deactivation_hook(__FILE__, function() {
        flush_rewrite_rules(FALSE);
    });
}

Lorsque j'active ce plugin, la règle de réécriture est mise à jour et, en fait, c'est cool! Cependant, lorsque je désactive le plug-in, la règle de réécriture ne peut pas être supprimée automatiquement.

Je dois vider manuellement à la page des paramètres de permaliens.

Alors, comment modifier mon code de plugin pour qu’aucun flushing manuel ne soit nécessaire lors de la désactivation du plugin?

1
Yoga

Vous ajoutez vos règles de réécriture à $ wp_rewrite-> règles, mais vous ne les supprimez pas avant d'appeler le flush lors de la désactivation. Ajoutez du code à votre fonction de désactivation pour supprimer les éléments que vous avez ajoutés à $ wp_rewrite-> rules avant d'appeler flush_rewrite_rules ().

2
Otto