web-dev-qa-db-ja.com

after_setup_themeのremove_actionが子テーマから機能しない

私は子テーマを使ってエレガントテーマのテーマのためのテーマアクションを削除しようとしています。これは私が親テーマのfunctions.phpのどこかでadd_actionコードの後に​​アクションを削除するときに働きます。ただし、child theme functions.phpから追加した場合は機能しません。

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

削除アクションは、追加アクションと同じ優先順位10を持ちます。うまくいかないでしょうか。

add_action( 'after_setup_theme', 'et_pb_setup_theme' ); //parent theme add_action
16
Smoking Sheriff

@cybmetaがすでに指摘したように、あなたはあなたの削除には早すぎます。そのため、実際の削除を延期する必要があります。たとえば、

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

子テーマのfunctions.phpファイルは親テーマのfunctions.phpの直前にロードされるので、子テーマでremove_actionを実行すると、削除しようとしているアクションは存在しないため、後で追加されます。

3
cybmeta

試してください(名前を変更するだけです)。

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