remove_action en after_setup_theme no funciona desde un tema secundario

14

Estoy intentando eliminar una acción de tema para un tema de temas elegantes utilizando un tema secundario ... Esto funciona cuando elimino la acción después del código add_action en cualquier lugar en las funciones del tema principal.php. Sin embargo, no funciona cuando lo agrego desde funciones de tema hijo.php.

remove_action ('after_setup_theme', 'et_pb_setup_theme' , 10);

La acción de eliminación tiene la misma prioridad 10 que la acción de agregar. ¿No debería funcionar?

add_action( 'after_setup_theme', 'et_pb_setup_theme' ); //parent theme add_action
    
pregunta Smoking Sheriff 09.12.2014 - 10:04

3 respuestas

22

Como @cybmeta ya señaló, usted es demasiado pronto con su eliminación. Por lo tanto, debe aplazar la eliminación real, por ejemplo, así:

add_action( 'after_setup_theme', 'wpdev_170663_remove_parent_theme_stuff', 0 );

function wpdev_170663_remove_parent_theme_stuff() {

    remove_action( 'after_setup_theme', 'et_pb_setup_theme' );
}
    
respondido por el tfrommen 09.12.2014 - 10:29
3

El archivo functions.php de los temas secundarios se carga justo antes que el tema primario functions.php, por lo que cuando ejecuta remove_action en el tema secundario, la acción que intenta eliminar no existe porque se agrega más tarde.

    
respondido por el cybmeta 09.12.2014 - 10:18
1

Probar (solo cambiar los nombres):

add_action( 'init' , 'myyy_remove' , 15 );
function myyy_remove() {
        remove_action('ACTION_NAME', 'my_function_name_Something'   ,11);
        remove_action('ACTION_NAME', 'my_function_name_Another'     ,11);
}
    
respondido por el T.Todua 28.07.2015 - 19:58

Lea otras preguntas en las etiquetas