我正在构建一个简单的短代码插件。其中一个短代码需要在页脚中使用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'
来调用函数...但它似乎不接受自定义参数。
我希望这是足够的信息!
谢谢!
答案 0 :(得分:0)
首先,将你的php代码与javascript代码混合,创建一个.js文件并将其添加到页脚:http://codex.wordpress.org/Function_Reference/wp_register_script(设置页脚为true以在页脚中包含ur javacript文件)真的是一个不好的做法; 然后为每个项目添加一个css类,然后在你的javascript文件中,你可以使用该css类来引用所有项目。