想在我的wordpress插件中添加$ GLOBALS变量,但它不起作用

时间:2015-12-17 09:45:22

标签: php wordpress wordpress-plugin

最近我正在制作一个wordpress短代码插件。这是一个响应式短代码插件。我想根据用户的用户输入声明自定义css。所以我必须为这个atts制作一个$ GLOBALS变量,但它不起作用。有人请帮我解决这个问题,因为我无法弄清楚什么是错的。

    <?php 

function gs_tabs_shortcode($atts, $content= null){
    $GLOBALS['tab_count'] = 0;
    extract(shortcode_atts(array(
      'fontcolor' => '', 
      'tabcolor' => '',
      'contcolor' => '',
      'contfontc' => ''
      ), $atts) );
    $x = $GLOBALS['tab_count'];

     //__User input bind in supper globar array__//
     $GLOBALS['styls'][$x] = array( 'fontcolor' => $fontcolor, 
                                    'tabcolor' => $tabcolor,
                                    'contcolor' => $contcolor,
                                    'contfontc' => $contfontc);
     $GLOBALS['tab_count']++;

    do_shortcode( $content );


    if ( is_array( $GLOBALS['tabs'] ) ) {


        foreach ($GLOBALS['tabs'] as $tab ) {
            $tabs[]= '<li> <i class="fa fa-'.$tab['icon'].' fa-lg "></i>  '.$tab['title'].'  </li>';
            $tabcontent[]= '<div><p> '.$tab['content'].' </p></div>';
        }

        $return = '<div id="horizontalTab">';
        $return .= '<ul class="resp-tabs-list">'.implode( "\n", $tabs ).'</ul>';

        $return .= '<div class="resp-tabs-container">'.implode("\n", $tabcontent).'</div>';
        $return .= '</div>';

    }
    return $return;

}
add_shortcode('gs_tabs', 'gs_tabs_shortcode');

function gs_tabs_shortcode_nested( $atts, $content= null ){
  extract(shortcode_atts(array(
      'title' => '', 
      'icon' => ''
      ), $atts) );

  $x = $GLOBALS['tab_count'];
  $content = do_shortcode($content);
  //__User input bind in supper globar array__//
  $GLOBALS['tabs'][$x] = array( 'title' => $title, 
                                'content' => $content,
                                'icon' => $icon);
  $GLOBALS['tab_count']++;
}
add_shortcode('gs_item','gs_tabs_shortcode_nested');



//customize userdata 
    function my_custom_fonts() {



        if (is_array( $GLOBALS['styls'] ) ) {

            foreach ( $GLOBALS['styls'] as $style ) {
                $opt= '<style>
                .resp-tab-item {
                  background: '.$style['tabcolor'].';
                  color:'.$style['fontcolor'].';
                } 
              </style>';
              echo $opt;
            }

        }


    }
    add_action('wp_head', 'my_custom_fonts');

 ?>

这是我的自定义css功能

//customize userdata 
    function my_custom_fonts() {

        if (is_array( $GLOBALS['styls'] ) ) {

            foreach ( $GLOBALS['styls'] as $style ) {
                $opt= '<style>
                .resp-tab-item {
                  background: '.$style['tabcolor'].';
                  color:'.$style['fontcolor'].';
                } 
              </style>';
              echo $opt;
            }
        }

    }
    add_action('wp_head', 'my_custom_fonts');

用户要声明样式

[gs_tabs fontcolor="black" tabcolor="blue"  ]

[gs_item title="item1" icon="camera-retro"]this is item 1[/gs_item]
[gs_item title="item2"  ]this is item 2[/gs_item]
[gs_item title="item3" icon="binoculars"]this is item 3[/gs_item]

[/gs_tabs]

0 个答案:

没有答案