Поддержка Проблемы и решения Как изменить структуру сайдбара

  • Решено Антон

    (@antigidru)


    По умолчанию при добавлении блока в сайдбар он добавляется в виде:

    <li id="archives-4" class="widget widget_archive">
    <h2 class="widgettitle">Архивы</h2>
    <ul>
    <li><a href='http://ubuntumanual.ru/?m=201102' title='Февраль 2011'>Февраль 2011</a>&nbsp;(2)</li>
    </ul>
    </li>

    Как можно поменять структуру чтобы было так:

    <div class="block">
    <h3>Название блока</h3>
    тут содержимое...
    div class="block_bottom"></div>
    </div>

    Встрачал такое в файле functions.php в папке шаблона, но только в стандартном шаблоне. У меня же functions.php выглядет так:

    <?php
    if (function_exists('register_sidebars')) {
    	register_sidebars(2);
    }
    ?>

    Помогите найти решения проблемы.

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Файл functions.php твоей темы, ищи: twentyten_widgets_init()

    Автор Антон

    (@antigidru)

    У меня вообще такого нету. Вот нашел в стандартном шабе и даже переделал как мне нужно:

    function twentyten_widgets_init() {
    	register_sidebar( array(
    		'name' => __( 'Primary Widget Area', 'twentyten' ),
    		'id' => 'primary-widget-area',
    		'description' => __( 'The primary widget area', 'twentyten' ),
    		'before_widget' => '<div id="%1$s" class="block %2$s">',
    		'after_widget' => '<div class="block_bottom"></div></div>',
    		'before_title' => '<h3>',
    		'after_title' => '</h3>',
    	) );
    }

    Где тут нужно переделать чтобы эти параметры передавались именно моему сайдбару. Как уже писал мой старый functions.php был:

    <?php
    if (function_exists('register_sidebars')) {
    	register_sidebars(2);
    }
    ?>

    а в сайдбаре я вставляю код:

    <?php if (function_exists('dynamic_sidebar') && dynamic_sidebar(1)): else: ?>
    Блоки...
    <?php endif; ?>

    В function.php зарегистрируй два динамических сайдбара

    function twentyten_widgets_init() {
    	register_sidebar( array(
    		'name' => __( 'Primary Widget Area', 'twentyten' ),
    		'id' => 'primary-widget-area',
    		'description' => __( 'The primary widget area', 'twentyten' ),
    		'before_widget' => '<div id="%1$s" class="block %2$s">',
    		'after_widget' => '<div class="block_bottom"></div></div>',
    		'before_title' => '<h3>',
    		'after_title' => '</h3>',
    	) );
    
    	register_sidebar( array(
    		'name' => __( 'Secondary Widget Area', 'twentyten' ),
    		'id' => 'secondary-widget-area',
    		'description' => __( 'The primary widget area', 'twentyten' ),
    		'before_widget' => '<div id="%1$s" class="block %2$s">',
    		'after_widget' => '<div class="block_bottom"></div></div>',
    		'before_title' => '<h3>',
    		'after_title' => '</h3>',
    	) );
    
    }

    а в шаблоне на месте вывода сайдбара:
    dynamic_sidebar( 'primary-widget-area' ); и dynamic_sidebar( 'secondary-widget-area' );

    Автор Антон

    (@antigidru)

    Спасиб до меня дня 2 назад доперло. Покапался в других шаблонах. Просто я регестрировал сайдбар так:

    <?php
    if (function_exists('register_sidebars')) {
    	register_sidebars(2);
    }
    ?>

    а сейчас у меня так:

    <?php
    	if(function_exists('register_sidebars')) {
    		register_sidebar(array(
    			'name' => __( 'Левые блоки', 'twentyten' ),
    			'id' => 'left-blocks',
    			'before_widget' => '<div class="block">',
    			'after_widget' => '<div class="block_bottom"></div></div>',
    			'before_title' => '<h3>',
    			'after_title' => '</h3>',
    		));
    		register_sidebar(array(
    			'name' => __( 'Правые блоки', 'twentyten' ),
    			'id' => 'right-blocks',
    			'before_widget' => '<div class="block">',
    			'after_widget' => '<div class="block_bottom"></div></div>',
    			'before_title' => '<h3>',
    			'after_title' => '</h3>',
    		));
    	}
    ?>

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Как изменить структуру сайдбара» закрыта для новых ответов.