试图修改子主题上的父菜单功能,原始功能为:
function original_theme_menus() {
$menus = array(
\'top\' => __( \'Top Menu\', \'theme-domain\' ),
\'primary\' => __( \'Primary Menu\', \'theme-domain\' ),
\'secondary\' => __( \'Secondary Menu\', \'theme-domain\' ),
);
return apply_filters( \'original_theme_menus\', $menus );
}
我正在做:
function remove_original_theme_menus() {
remove_action(\'original_theme_menus\');
}
add_action(\'init\', \'remove_original_theme_menus\');
function original_theme_menus() {
$menus = array(
\'top\' => __( \'Top Menu\', \'theme-domain\' ),
\'primary\' => __( \'Primary Menu\', \'theme-domain\' ),
\'secondary\' => __( \'Secondary Menu\', \'theme-domain\' ),
\'footer\' => __( \'Footer Menu\', \'theme-domain\' )
);
return apply_filters( \'original_theme_menus\', $menus );
}
How should I unregister the original function?
我得到一个致命错误,因为原始函数仍然存在,无法重新声明它。
我尝试创建一个新的函数名,但问题是原来的函数名;如果我只是删除了原来的父函数,那么一切都会正常工作。
我读过this 和this 自行解决但无法找出取消注册的正确方法~覆盖原始菜单函数,并从子主题函数调用它。
我认为它也与“init”部分有关,因为我应该在apply过滤器上执行此操作。