Intereting Posts
Сообщение отправляется с использованием короткого кода и init Я удалил вредоносное ПО с нашего сайта, однако, когда я снова попытался найти слово из Google, он все еще там JQuery UI Google CSS, откуда? Значение свойства null, когда значение присваивается внутри метода, подключенного к крючку действия wp Как я могу найти пул плагинов? Настройка параметров экрана по умолчанию Отображение нескольких настраиваемых типов сообщений в одном типе сообщений в разделе администратора Как получить сообщение после публикации WordPress? Создание шаблонов страниц с записями изображений Попытка получить персонализированную мета-почту через Jetpack JSON API Запросить последние сообщения из нескольких категорий сравнить несколько значений метаданных для одного и того же ключа в wp_query Позвольте автору выбрать его размер изображения Что такое короткий код для следующего? Как я могу получить пользователя, который публикует сообщение?

Классы WordPress удаляются при использовании пользовательского ходока

Я использую этот код ниже, и он удалил мои классы css из опции меню в wordpress. Любые идеи, почему я не могу понять это: / Я добавляю классы CSS с опцией wordpress в разделе «Параметры экрана» и проверю «классы css».

Благодаря!

<?php class MV_Cleaner_Walker_Nav_Menu extends Walker { var $tree_type = array( 'post_type', 'taxonomy', 'custom' ); var $db_fields = array( 'parent' => 'menu_item_parent', 'id' => 'db_id' ); function start_lvl(&$output, $depth) { $indent = str_repeat("\t", $depth); $output .= "\n$indent<ul class=\"sub-menu\">\n"; } function end_lvl(&$output, $depth) { $indent = str_repeat("\t", $depth); $output .= "$indent</ul>\n"; } function start_el(&$output, $item, $depth, $args) { global $wp_query; $indent = ( $depth ) ? str_repeat( "\t", $depth ) : ''; $class_names = $value = ''; $classes = empty( $item->classes ) ? array() : (array) $item->classes; $classes = in_array( 'current-menu-item', $classes ) ? array( 'current-menu-item' ) : array(); $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args ) ); $class_names = strlen( trim( $class_names ) ) > 0 ? ' class="' . esc_attr( $class_names ) . '"' : ''; $id = apply_filters( 'nav_menu_item_id', '', $item, $args ); $id = strlen( $id ) ? ' id="' . esc_attr( $id ) . '"' : ''; $output .= $indent . '<li' . $id . $value . $class_names .'>'; $attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) .'"' : ''; $attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : ''; $attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) .'"' : ''; $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : ''; $item_output = $args->before; $item_output .= '<a data-scroll'. $attributes .'>'; $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after; $item_output .= '</a>'; $item_output .= $args->after; $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } function end_el(&$output, $item, $depth) { $output .= "</li>\n"; } } ?> 

Я думаю, что проблема вызвана этой строкой:

 $classes = in_array( 'current-menu-item', $classes ) ? array( 'current-menu-item' ) : array(); 

Это либо удаление всех классов, за исключением current-menu-item (если оно найдено в массиве), либо удаление всех классов (в противном случае).

Почему эта линия есть? Я думаю, что это касается случаев, когда вы не хотите добавлять классы по умолчанию, за исключением current-menu-item для текущих элементов, что не относится к вашему делу. Поэтому просто удалите эту строку.