Поддержка Темы и шаблоны Виджет категорий (акардион)

  • Здравствуйте, пишу не большой виджет типа (акардион)

    идея проста как 3 копейки, виджет повторяет полностью стандартный виджет рубрик, но как только ставишь checkbox Отображать иерархию. Сразу включается тот самый акардион!

    Проблема в том, что когда ставишь check в админке при сохранении он не сохраняется. Таким же образом кстать будет реализовано показ количества статей в категории.

    
    /* Виджет WPSchool Widget */
    class wpschool_example_widget extends WP_Widget {
    
        // Установка идентификатора, заголовка, имени класса и описания для виджета.
        public function __construct() {
            $widget_options = array(
                'classname' => 'wpschool',
                'description' => 'Виджет категорий темы Root',
            );
            parent::__construct( 'wpschool_widget', 'WPSchool Widget', $widget_options );
        }
    
        // Вывод виджета в области виджетов на сайте.
        public function widget( $args, $instance ) {
            $title = apply_filters( 'widget_title', $instance[ 'title' ] );
            $blog_title = get_bloginfo( 'name' );
            $tagline = get_bloginfo( 'description' );
    
            echo $args['before_widget'] . $args['before_title'] . $title . $args['after_title']; ?>
    
    <nav class="nsb-menu">
    <ul>
      
    <?
    
    $categories = get_categories( [
    	'taxonomy'     => 'category',
    	'type'         => 'post',
    	'child_of'     => 0,
    	'parent'       => '',
    	'orderby'      => 'name',
    	'order'        => 'ASC',
    	'hide_empty'   => 1,
    	'hierarchical' => 1,
    	'exclude'      => '',
    	'include'      => '',
    	'number'       => 0,
    	'pad_counts'   => false,
    	// полный список параметров смотрите в описании функции http://wp-kama.ru/function/get_terms
    ] );
    
          
      if( $categories ){
    	foreach( $categories as $cat ){
    	
          echo "<li class='nsb-menu-list' id='nsb$cat->slug'>
    	<a>slug' class='nsb-menu-link'><i class='fa fa-check' aria-hidden='true'></i> $cat->name <span class='nsbcout-post-display'>$cat->count</span></a>
    	
    	<div class='nsb-submenu'>
    	<a>slug' class='nsb-submenu-link'>$cat->description <span class='nsbcout-post-display'>$cat->count</span></a>
    	</div>
    	</li>";
          
    	}
    }    
    	
    
    ?>
     </ul>
    	</nav>       
    		
    	
            <?php echo $args['after_widget'];
        }
    
        // Параметры виджета, отображаемые в области администрирования WordPress.
        public function form( $instance ) {
            $title = ! empty( $instance['title'] ) ? $instance['title'] : ''; 
            
    ?>
            <p>
            <label for="<?php echo $this->get_field_id( 'title' ); ?>">Заголовок:</label>
            <input type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $title ); ?>" class="widefat" />
            </p>
            <p>
    			
    
    			<input type="checkbox" checked="" class="checkbox" id="<?php echo $this->get_field_id( 'widget-categories-count' ); ?>" name="<?php echo $this->get_field_name( 'widget-categories[3][hierarchical]' ); ?>">
    			<label for="widget-categories-4-count">Отображать число записей</label>
    			<br>
    
    			<input type="checkbox" class="checkbox" id="widget-categories-4-hierarchical" name="widget-categories[4][hierarchical]">
    			<label for="widget-categories-4-hierarchical">Отображать иерархию</label>
    		</p>
    
    <?php
        }
    
        // Обновление настроек виджета в админ-панели.
        public function update( $new_instance, $old_instance ) {
            $instance = $old_instance;
            $instance[ 'title' ] = strip_tags( $new_instance[ 'title' ]); 
            $instance[ 'widget-categories' ] = $new_instance[ 'widget-categories' ];
            return $instance;
        }
    
    }
    
    // Регистрация и активация виджета.
    function wpschool_register_widget() {
        register_widget( 'wpschool_example_widget' );
    }
    add_action( 'widgets_init', 'wpschool_register_widget' ); */
    
    • Тема изменена 1 месяц, 2 недели назад пользователем bulward.