Intereting Posts
Как запретить пользователям изменять свои первые, последние и экранные имена? Фильтр post_row_actions не работает при обновлении после быстрого редактирования как заставить WordPress не искать темы Лучший способ перенаправления категории на страницу и скрытие категории Лучший способ отправить пароль пользователей? Ограничить поиск в настраиваемом поле Размещение кода в плагине для подключения `save_post` Где я могу найти тему с большим баннером WP_Query дает разные результаты в зависимости от порядка категорий Не удается получить доступ к панели управления, время подключения (другие страницы работают нормально) Скрытые некоторые настройки в сообщении или странице Могу ли я интегрировать Google Analytics с моим блогом, размещенным на wordpress.com? Удалить старый липкий пост в публикации Как защитить паролем весь сайт, за исключением некоторых подкаталогов как добавить класс в ul, возвращаемый wp_list_bookmarks

Переопределение пользовательского виджета меню

Я хотел бы переопределить некоторые <div class="soma_container"><ul class=""></ul></div> и css (например, <div class="soma_container"><ul class=""></ul></div> ) для выбранного пользовательского виджета меню. Как мне это сделать? Должен быть подключен как основная навигация в functions.php или если есть хороший учебник по этому поводу, это будет действительно оценено

Я думаю, что кое-что из того, что я могу сделать при инициализации виджета init

  register_sidebar(array( 'name' => __('Sidebar Menu', 'roots'), 'id' => 'sidebar-primary', 'before_widget' => '<section class="widget %1$s %2$s">', 'after_widget' => '</section>', 'before_title' => '<h3>', 'after_title' => '</h3>', )); 

но как бы переопределить список css для пользовательского меню

Хорошо, здесь мы идем. Я расширил виджет навигации по умолчанию для вас. Добавьте это в свой файл функций тем. После того, как вы это сделали, перейдите к виджетам в панели управления, и теперь вы увидите виджет «Мэтт Королевское пользовательское меню». Используйте это.

В приведенном ниже коде класс div добавлен так, как вы указали, и вы можете использовать любые аргументы в функции wp_nav_menu ($ args). Вы можете найти все аргументы, которые вы можете передать ему в коде WordPress: http://codex.wordpress.org/Function_Reference/wp_nav_menu

 // MattRoyal Custom Navigation Menu widget class class Royal_Nav_Menu_Widget extends WP_Widget { function Royal_Nav_Menu_Widget() { $widget_ops = array( 'description' => __('Add a custom menu to your sidebar.') ); parent::__construct( 'nav_menu', __('Matt Royal Custom Menu'), $widget_ops ); } function widget($args, $instance) { // Get menu $nav_menu = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( $instance['nav_menu'] ) : false; if ( !$nav_menu ) return; /** This filter is documented in wp-includes/default-widgets.php */ $instance['title'] = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base ); echo $args['before_widget']; if ( !empty($instance['title']) ) echo $args['before_title'] . $instance['title'] . $args['after_title']; wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu, 'container_class' => 'soma_container', 'menu_class' => 'some_list', ) ); echo $args['after_widget']; } function update( $new_instance, $old_instance ) { $instance['title'] = strip_tags( stripslashes($new_instance['title']) ); $instance['nav_menu'] = (int) $new_instance['nav_menu']; return $instance; } function form( $instance ) { $title = isset( $instance['title'] ) ? $instance['title'] : ''; $nav_menu = isset( $instance['nav_menu'] ) ? $instance['nav_menu'] : ''; // Get menus $menus = wp_get_nav_menus( array( 'orderby' => 'name' ) ); // If no menus exists, direct the user to go and create some. if ( !$menus ) { echo '<p>'. sprintf( __('No menus have been created yet. <a href="%s">Create some</a>.'), admin_url('nav-menus.php') ) .'</p>'; return; } ?> <p> <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:') ?></label> <input type="text" class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo $title; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('nav_menu'); ?>"><?php _e('Select Menu:'); ?></label> <select id="<?php echo $this->get_field_id('nav_menu'); ?>" name="<?php echo $this->get_field_name('nav_menu'); ?>"> <option value="0"><?php _e( '&mdash; Select &mdash;' ) ?></option> <?php foreach ( $menus as $menu ) { echo '<option value="' . $menu->term_id . '"' . selected( $nav_menu, $menu->term_id, false ) . '>'. esc_html( $menu->name ) . '</option>'; } ?> </select> </p> <?php } } add_action('widgets_init', create_function('', 'return register_widget("Royal_Nav_Menu_Widget");')); 

Не расширяя виджет по умолчанию и не создавая свой собственный виджет, я не уверен, что вы можете это сделать.

Вот плагин, который позволяет здесь осуществлять значительное количество контроля и должен работать для того, что вы хотите сделать.