Фильтровать wordpress-меню по названию категории

Мне нужно отфильтровать WordPress-меню по названию категории.

На данный момент я обнаружил следующий цикл, который дает мне все пункты меню:

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

Решение

Кажется, я нашел решение, я не знаю, лучшее ли оно, но пока кажется, что оно работает:

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;
}

Как вы думаете?

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector