使用自定义参数向wp页脚添加功能

时间:2014-02-26 16:39:43

标签: php jquery wordpress plugins

我正在构建一个简单的短代码插件。其中一个短代码需要在页脚中使用jQuery来激活带有uniqid div ID的标签。我正在使用以下函数构建jQuery:

function footer_scripts($id_array){

    foreach($id_array as $id) {
        $tab_loop .= '$(\'.nav-tabs a[href="#tabs-'.$id.'"]\').tab(\'show\');';
    }

     $return = 'jQuery(document).ready(function ($) {
        // var touched = false;
        e.preventDefault();';
     $return .= $tab_loop;
     $return .= '});';

     return $return;
 }

然后在构建选项卡的函数中调用该函数,如下所示:

 function tab_group($atts, $content) {  
    extract(shortcode_atts(array(
         // Option to use tabs or pills and open or closed framing
        'nav'   => 'tabs',
        'style'     => 'framed',
    ), $atts));

    $GLOBALS['tab_count'] = 0;

    do_shortcode($content);

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

        // Create an array of IDs to pass to the footer js function

        $id_array = array();

        // Create arrays for the foreach loop to contain the tab selectors and contents. We will pull this apart outside of the loop using implode()

        foreach( $GLOBALS['tabs'] as $tab ){
            $id_array[] = $tab['id'];
            $tabs[] = '<li class=""><a href="#tabs-'.$tab['id'].'" data-toggle="'.substr($nav,0,-1).'" title="'.$tab['title'].'">'.$tab['title'].'</a></li>';
            $tab_contents[] = '<div id="tabs-'.$tab['id'].'"><h3>'.$tab['title'].'</h3>'.$tab['content'].'</div>';
        }

        footer_scripts($id_array);

        $return = "\n".'<!-- Tabs Shortcode -->'."\n".'<ul class="nav nav-'.$nav.'">'.implode( "\n", $tabs ).'</ul>'."\n".'<!-- Tabs Content -->'."\n".'<div class="tab-content">'.implode( "\n", $tab_contents ).'</div>'."\n";
    }
    return $return;
 }

所以现在我的问题是如何将这个新创建的代码块放入页脚。我知道我可以使用add_action('wp_footer'来调用函数...但它似乎不接受自定义参数。

我希望这是足够的信息!

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,将你的php代码与javascript代码混合,创建一个.js文件并将其添加到页脚:http://codex.wordpress.org/Function_Reference/wp_register_script(设置页脚为true以在页脚中包含ur javacript文件)真的是一个不好的做法; 然后为每个项目添加一个css类,然后在你的javascript文件中,你可以使用该css类来引用所有项目。