在Wordpress儿童主题中禁用过滤器

时间:2015-02-22 08:43:06

标签: php wordpress

早上好,

我正在开发一个新网站并使用子主题进行修改。我希望删除一个在父主题上运行的过滤器 - 我可以对我的子主题函数进行修改吗?

父主题中的函数是:

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' );

非常感谢任何帮助: - )

1 个答案:

答案 0 :(得分:0)

在任何地方使用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文件中,并删除过滤器。