remove_action sur after_setup_theme ne fonctionne pas à partir du thème de l'enfant

14

J'essaie de supprimer une action de thème pour un thème de thèmes élégants à l'aide d'un thème pour enfants. Cela fonctionne lorsque je supprime l'action après le code add_action n'importe où dans le thème parent functions.php. Cependant, cela ne fonctionne pas lorsque je l'ajoute à partir du thème enfant functions.php.

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

L'action de suppression a la même priorité 10 que l'action d'ajout. Ça ne devrait pas marcher?

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

3 réponses

22

Comme @cybmeta l'a déjà souligné, vous êtes trop tôt pour votre renvoi. Vous devez donc différer la suppression réelle, par exemple comme suit:

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' );
}
    
réponse donnée tfrommen 09.12.2014 - 10:29
3

Le fichier functions.php des thèmes enfants est chargé juste avant le thème parent functions.php. Ainsi, lorsque vous exécutez remove_action dans le thème enfant, l'action que vous tentez de supprimer n'existe pas car elle est ajoutée ultérieurement.

    
réponse donnée cybmeta 09.12.2014 - 10:18
1

Essayez (changez simplement les noms):

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);
}
    
réponse donnée T.Todua 28.07.2015 - 19:58

Lire d'autres questions sur les étiquettes