Cómo anular la acción del complemento existente con una nueva acción


18

Estoy usando un complemento. Tiene una acción como esta.

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

Estoy escribiendo un módulo para este complemento. Así que necesito anular esa antigua función de acción con mi nueva función de acción.

Esta es mi nueva función.

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

Quiero reemplazar esa función old_action con mi función new_action usando ganchos. ¿Alguien puede ayudarme?

Gracias

Respuestas:


33

Puede usar la remove_action()función, así:

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

Es importante tener en cuenta que si se agregó old_action con un parámetro de prioridad, debe agregarlo a la remove_actionllamada; de lo contrario, no se eliminará. Hay otras implicaciones si old_action se agregó dentro de una clase. Ver aquí para más información.


3
+1 con la aclaración de que la acción de eliminación debe llamarse después de agregar la función que está eliminando.
Stephen Harris

2
'after_setup_theme' parece un buen lugar para remove_action. Ver: wordpress.stackexchange.com/questions/170663/…
DigitalDesignDj
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.