1


我正在尝试创建手风琴简码。当我使用 wp_enqueue_script 函数加载脚本时,它只适用于 jquery ui 库而不适用于自定义脚本

jQuery(document).ready(
    function() {
           $('#ks-accordion').accordion(); 
       }
);


这是完整的代码:

// Container

function ks_accordion($atts, $content = null) {

    extract( shortcode_atts( array(
        'id' => ''
    ), $atts ) );
    wp_enqueue_script('jquery-ui-accordion');
    wp_enqueue_script('shortcode', get_template_directory_uri().'/functions/shortcodes/js/shortcodes.js');

    return '<div id="accordion">'.do_shortcode($content).'</div>';
}
add_shortcode( 'accordion', 'ks_accordion' );


// Section

function ks_accordion_section($atts, $content = null) {

    extract( shortcode_atts( array(
        'title' => 'My Title',
    ), $atts ) );

    return '<h6><a href="#">'.$title.'</a></h6><div><p>'.do_shortcode($content).'</p></div>';

}
add_shortcode( 'accordion_section', 'ks_accordion_section' );


这是我在前端得到的代码:

<div id="ks-accordion"><br>
  <h6><a href="#">Title</a></h6><div><p>Content</p></div><br>
  <h6><a href="#">Title1</a></h6><div><p>Content</p></div><br>
  <h6><a href="#">Title2</a></h6><div><p>Content</p></div><br>
</div>


我也不明白为什么它会创建这些<br>


谢谢

4

2 回答 2

0

jQuery在 WordPress中以模式加载。noConflict要使用美元符号,我们需要以下内容

jQuery(document).ready( function( $ ) { // <---- 把 $ 放在这里
    $('#ks-accordion').accordion();
});

很可能do_shortcode是插入那些<br>,但这只是猜测。

于 2013-10-28T18:50:16.777 回答
0
wp_enqueue_script('shortcode', get_template_directory_uri().'/functions/shortcodes/js/shortcodes.js', array('jquery'));

希望这可以帮助!

于 2013-10-28T13:29:39.800 回答