Шорткод: Аккордеон на Twitter Bootstrap

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Twitter Bootstrap — это мощный, интуитивно понятный фронтенд фреймворк для ускорения и упрощения веб-разработки. Bootstrap предоставляем кроссбраузерный 12-колоночный адаптивный CSS, который не только будет замечательно работать даже в старых браузерах (например IE7), но и прекрасно чувствует себя на смартфонах, мобильных и планшетных браузерах. Также он включает в себя несколько компонентов JavaScript, которые обычно требуются для интерактивных веб-порталов.

Говоря о WordPress в первую очередь как о CMS, мы хотим управлять всем из бекенда. Однако, компоненты Twitter Bootstrap не разработаны под бекенд WordPress. Поэтому мы постараемся преодолеть эту проблему, внедряя шорткоды WordPress для всех компонентов Twitter bootstrap. Начнем мы с Collapse.
Пример на скриншоте:

collapse

Использование

[collapse_group id="optional_group_1"]
	[collapse title="my heading1" id="optional_id" open="y/n"]Некоторый текст[/collapse]
	[collapse title="my heading2" id="optional_id" open="y/n"]Некоторый текст[/collapse]
[/collapse_group]

Сниппет

Добавляем следующий код в файл functions.php вашей темы:

add_shortcode("collapse", "collapse");
add_shortcode("collapse_group", "collapse_group");
function collapse_group( $atts, $content = null ) {  
    extract(shortcode_atts(array(  
    'id' => '',
    'class' => ''
    ), $atts));  
	
    $output  = '<div class="accordion '.$class.'"  ';
	
    if(!empty($id))
        $output .= 'id="'.$id.'"';
		
    $output .='>'.do_shortcode($content).'</div>';
    return $output;  
}  

function collapse($atts, $content = null) {  
    extract(shortcode_atts(array(  
    'id' => '',
    'title' => '',
	'open'=>'n' 
    ), $atts));  

    // автоматически генерируем id для связки тайтла аккордеона с конентом
    if(empty($id))
        $id = 'accordian_item_'.rand(100,999);
		
    $output = '<div class="accordion-group">
        <div class="accordion-heading">
        <a class="accordion-toggle" data-toggle="collapse" 
        data-parent="#accordion2" href="#'.$id.'">'.$title.'</a>
        </div>
         <div id="'.$id.'" class="accordion-body collapse '.($open == 'y' ? 'in' :'').'">
            <div class="accordion-inner">'.$content.'</div>
         </div>
        </div>';  
		
    return $output;
}  

VN:F [1.9.22_1171]

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии