web-dev-qa-db-fra.com

Comment remplacer l'action d'un plugin existant par une nouvelle action

J'utilise un plugin. Il y 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 souhaite remplacer cette fonction old_action par ma fonction new_action à l'aide de points d'ancrage. Quelqu'un peut-il m'aider?

Merci

17
Giri

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

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

Il est important de noter que si l'ancienne_action a été ajoutée avec un paramètre de priorité, vous devez l'ajouter à l'appel remove_action, sinon la suppression échouera. Il y a d'autres implications si old_action a été ajouté dans une classe. Voir ici pour plus d'informations.

30
Tomas Buteler