Come sovrascrivere l'azione del plug-in esistente con una nuova azione


18

Sto usando un plugin. Ha un'azione come questa.

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

Sto scrivendo un modulo per questo plugin. Quindi ho bisogno di sostituire quella vecchia funzione di azione con la mia nuova funzione di azione.

Questa è la mia nuova funzione.

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

Voglio sostituire quella funzione old_action con la mia funzione new_action usando gli hook. Qualcuno può aiutarmi?

Grazie

Risposte:


33

È possibile utilizzare la remove_action()funzione, in questo modo:

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

È importante notare che se old_action è stato aggiunto con un parametro di priorità, è necessario aggiungerlo alla remove_actionchiamata, altrimenti non riuscirà a rimuoverlo. Ci sono altre implicazioni se la old_action è stata aggiunta all'interno di una classe. Vedi qui per maggiori informazioni.


3
+1 con il chiarimento che l'azione di rimozione deve essere chiamata dopo l'aggiunta della funzione che sta rimuovendo.
Stephen Harris,

2
'after_setup_theme' sembra un buon posto per remove_action. Vedi: wordpress.stackexchange.com/questions/170663/…
DigitalDesignDj
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.