За последние 24 часа нас посетили 16542 программиста и 1642 робота. Сейчас ищут 1186 программистов ...

Шорткод табов для WordPress

Тема в разделе "Сделайте за меня", создана пользователем tyshka, 4 фев 2015.

  1. tyshka

    tyshka Активный пользователь

    С нами с:
    4 фев 2015
    Сообщения:
    21
    Симпатии:
    0
    помогите исправить шорткод табов для WordPress, я не разбираюсь в php

    шорткод работает, но он ищет все табы на странице и когда выводит html он подгоняет все табы под одно количество вкладок, например если поставить на страницу один таб с 3-мя вкладками и поставить второй таб с 5-ю вкладками - в результате на странице будет два таба и оба с 5-ю вкладками

    пример шорткода таба который обрабатывает этот код

    Код (Text):
    1.  
    2.  
    3. [tabs layout="horizontal"]
    4.  
    5. [tab title="Circumdare toto"]Evolvit caeleste dei zonae perpetuum lucis.[/tab]
    6. [tab title="Rudis eurus est"]Formaeque sibi proximus eurus magni origine.[/tab]
    7. [tab title="Galeae qui dextra parte"]Galeae qui dextra parte.[/tab]
    8. [tab title="Nulli fulgura phoebe secuit"]Nulli fulgura phoebe secuit.[/tab]
    9. [tab title="Quia nullo caelum"]His tum traxit summaque.[/tab]
    10.  
    11. [/tabs]
    12.  

    php код табов

    Код (Text):
    1.  
    2.  
    3. function tabs_container( $atts, $content = null, $code ) {
    4.  
    5.         extract(
    6.                 shortcode_atts(
    7.                         array(
    8.                                 'title'  => '',
    9.                                 'layout' => ''
    10.                         ),
    11.                         $atts
    12.                 )
    13.         );
    14.  
    15.         $GLOBALS['tab_count'] = 0;
    16.         $output = null;
    17.  
    18.         do_shortcode( $content );
    19.  
    20.         if ( is_array( $GLOBALS['tabs'] ) ) {
    21.                 foreach( $GLOBALS['tabs'] as $tab ) {
    22.                         $tabs[] = '<li><span>' . $tab['title'] . '</span></li>';
    23.                         $panes[] = '<h5 class="accordion"><a>' . $tab['title'] . '</a></h5>' . "\n" . '<div class="pane clearboth">' . $tab['content'] . '</div>';
    24.                 }
    25.                $output .= "\n" . '<ul class="' . $code . '">' . implode( "\n", $tabs ) . '</ul>' . "\n";
    26.                 $output .= "\n" . implode( "\n", $panes ) . "\n";
    27.         }
    28.         return '<div class="tabs-container ' . $layout . ' clearboth">' . $output . '</div>';
    29.  
    30. }
    31. add_shortcode( 'tabs', 'tabs_container' );
    32.  
    33. function tab( $atts, $content = null, $code ) {
    34.  
    35.         extract(
    36.                 shortcode_atts(
    37.                         array(
    38.                                 'title' => ''
    39.                         ),
    40.                         $atts
    41.                 )
    42.         );
    43.  
    44.         $x = $GLOBALS['tab_count'];
    45.         $GLOBALS['tabs'][$x] = array( 'title' => sprintf( $title, $GLOBALS['tab_count'] ), 'content' =>  $content );
    46.         $GLOBALS['tab_count']++;
    47.  
    48. }
    49. add_shortcode( 'tab', 'tab' );
    50.  
    помогите пожалуйста!