按类别名称过滤wordpress-menu

时间:2015-04-11 06:26:23

标签: php wordpress add-filter

我需要按类别名称过滤wordpress-menu。

到目前为止我发现的是以下循环,它为我提供了所有菜单项:

function exclude_menu_items( $items, $menu, $args ) {
    // Iterate over the items to search and destroy
    foreach ( $items as $key => $item ) {
        //if ( $item->object_id == 168 ) unset( $items[$key] );
        print_r($item);
        echo '<br>';
        //var_dump(get_the_category($item->ID));
        //echo get_query_var('cat');
    }

    return $items;
}

add_filter( 'wp_get_nav_menu_items', 'exclude_menu_items', null, 3 );

我添加了页面功能,如下所示:

function add_categories_for_pages() {
    register_taxonomy_for_object_type('category', 'page');
}
add_action( 'init', 'add_categories_for_pages' );

但是现在如何从菜单项中获取页面类别?

1 个答案:

答案 0 :(得分:0)

似乎我找到了一个解决方案,我不知道它是否是最好的,但到目前为止似乎有效:

function exclude_menu_items( $items, $menu, $args ) {
    // Iterate over the items to search and destroy
    foreach ( $items as $key => $item ) {
        $categories = get_the_category( $item->object_id );
        foreach($categories as $category){
            if($category->cat_name != 'mycatname'){
                unset( $items[$key] );
            }
        }
    }
    return $items;
}

您怎么看?