早上好,
我正在一个新的网站上工作,并在我的修正案中使用儿童主题。我想删除一个在父主题上运行的过滤器——我可以对我的子主题函数进行修改吗?
父主题中的函数是:
if ( ! function_exists( 'rosette_setup' ) ) :
function rosette_setup() {
add_filter( 'wp_nav_menu_items', 'add_loginout_link', 10, 2 );
function add_loginout_link( $items, $args ){
if (is_user_logged_in() && $args->theme_location == 'top_bar_nav'){
$items .= '<li class="menu-item"><a href="'.get_permalink(2798).'" title="">My Account</a></li>';
$items .= '<li class="menu-item"><a href="'.get_permalink(5).'" title="">My Wishlist</a></li>';
$items .= '<li class="menu-item"><a class="nav-top-link" href="'.wp_logout_url().'">Log Out</a></li>';
}
elseif (!is_user_logged_in() && $args->theme_location == 'top_bar_nav') {
$items .= '<li class="menu-item"><a href="'.get_permalink( get_option('woocommerce_myaccount_page_id') ).'" title="">Login</a></li>';
}
return $items;
}
}
endif;
add_action( 'after_setup_theme', 'rosette_setup' );
如有任何帮助,我们将不胜感激:-)
在任何地方使用remove_filter()函数都应该做到这一点。。。因此,对于您的代码,您将查看
function my_child_theme_setup() {
remove_filter( 'wp_nav_menu_items', 'add_loginout_link', 10 );
}
add_action( 'after_setup_theme', 'my_child_theme_setup' );
只需将代码放在子主题的function.php文件中,过滤器就会被删除。