web-dev-qa-db-fra.com

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

J'essaie de supprimer une action de thème pour un thème elegant-themes à l'aide d'un thème enfant. Cela fonctionne lorsque je supprime une 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);

Supprimer l'action 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
16
Smoking Sheriff

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' );
}
24
tfrommen

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 un thème enfant, l'action que vous tentez de supprimer n'existe pas car elle est ajoutée ultérieurement.

3
cybmeta

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);
}
1
T.Todua