Comment remplacer une action de plugin existante par une nouvelle action

18

J'utilise un plugin. Il a une action comme celle-ci.

add_action('publish_post', 'old_action');
function old_action($pid) {
    "code goes here"
    }
}

J'écris un module pour ce plugin. J'ai donc besoin de remplacer cette ancienne fonction d'action par ma nouvelle fonction d'action.

Ceci est ma nouvelle fonction.

function new_action($pid) {
      "code goes here"
        }
    }

Je veux remplacer cette fonction old_action par ma fonction new_action en utilisant des crochets. Quelqu'un peut-il m'aider?

Merci

Giri
la source

Réponses:

33

Vous pouvez utiliser la remove_action()fonction, comme ceci:

remove_action('publish_post', 'old_action');
add_action('publish_post', 'new_action');

Il est important de noter que si la old_action a été ajoutée avec un paramètre de priorité, vous devez l'ajouter à l' remove_actionappel, sinon elle ne le supprimera pas. Il y a d'autres implications si la old_action a été ajoutée dans une classe. Voir ici pour plus d'informations.

Tomas Buteler
la source
3
+1 en précisant que l'action de suppression doit être appelée après l'ajout de la fonction qu'elle supprime.
Stephen Harris
2
'after_setup_theme' semble être un bon endroit pour remove_action. Voir: wordpress.stackexchange.com/questions/170663/…
DigitalDesignDj