добавить пользовательский класс в wp_nav_menu с помощью ловушки фильтра nav_menu_css_class


8

У меня есть собственный тип сообщения в моей теме WordPress. Я хочу добавить пользовательский класс в навигационное меню для страниц, созданных в этом пользовательском типе записи. Я читал, что вы можете использовать фильтр ловушку: "nav_menu_css_class", но мои php chops довольно ограничены. Как мне настроить этот фильтр, чтобы он применялся только к моим пользовательским страницам типа сообщений в навигационном меню и предоставлял им собственный класс?

Ответы:


8

Вот простой пример:

add_filter('nav_menu_css_class', 'auto_custom_type_class', 10, 2 );
function auto_custom_type_class($classes, $item) {

    if ($item->type_label == "CUSTOM_TYPE_NAME"){
        $classes[] = "New_Class";
    }

    return $classes;
}

просто измените CUSTOM_TYPE_NAMEимя вашего пользовательского типа записи и New_Classимя вашего класса и вставьте этот фрагмент в файл functions.php вашей темы.


Это работает. Ценить это!
Колин

Рад, что смог помочь.
Bainternet

Другой вопрос: $item->type_labelоткуда это взялось и есть ли другие вещи, которые вы можете применить к этой переменной «$ item»?
Колин

1
объект $ item передается вызовом apply_filters и содержит все переменные элемента. Вы можете получить список, добавив где-то в функциюvar_dump($item);
Bainternet

Вау, сладкая! (просто запустил) Полезно знать. Еще раз спасибо.
Колин
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.