Come sovrascrivere un'azione esistente di un plugin con una nuova azione

28 gen 2012, 08:35:34
Visualizzazioni: 32.7K
Voti: 24

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

add_action('publish_post', 'old_action');
function old_action($pid) {
    "il codice va qui"
    }
}

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

Questa è la mia nuova funzione.

function new_action($pid) {
      "il codice va qui"
        }
    }

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

Grazie

0
Tutte le risposte alla domanda 1
3
44

Puoi utilizzare la funzione remove_action() in questo modo:

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

È importante notare che se l'old_action è stato aggiunto con un parametro di priorità, devi specificarlo anche nella chiamata a remove_action, altrimenti non verrà rimosso correttamente. Ci sono altre implicazioni se l'old_action è stato aggiunto all'interno di una classe. Vedi qui per maggiori informazioni.

28 gen 2012 09:13:34
Commenti

+1 con la precisazione che l'azione remove deve essere chiamata dopo che la funzione che rimuove è stata aggiunta.

Stephen Harris Stephen Harris
28 gen 2012 10:24:42

'after_setup_theme' sembra un buon posto per remove_action. Vedi: http://wordpress.stackexchange.com/questions/170663/remove-action-on-after-setup-theme-not-working-from-child-theme

DigitalDesignDj DigitalDesignDj
10 set 2016 22:48:20

Ho provato per un bel po' e mi grattavo la testa - alla fine "after_setup_theme" ha funzionato! Grazie!

frizzant frizzant
27 dic 2023 16:07:35