如何使用WordPress随附的jQuery for jpanelMenu

时间:2014-02-03 作者:dadra

一段时间以来,我一直在wordpress主题中成功使用jpanelmenu,从google api加载jquery,如下所示:

if ( !is_admin() ) {

    // jQuery
    wp_deregister_script(\'jquery\');
    wp_register_script(\'jquery\', ("http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"), false);
    wp_enqueue_script(\'jquery\');

    // load jPanelMenu
    wp_enqueue_script(\'jpanelmenu\', get_bloginfo(\'template_directory\') . "/js/jquery.jpanelmenu.js");

}
我宁愿使用wordpress附带的jquery版本,但不知道如何实现。有谁能告诉我如何做到这一点,或者告诉我,如果我认为使用wp的内置jquery会比我在上面代码中所做的更好,那我是不是错了?

我是这样实例化jpanelmenu的:

$(document).ready(function () {
    var jPM = $.jPanelMenu({
    duration: 100,
    openPosition: "240px",
    direction: "left",
    keyboardShortcuts: false
    });
    jPM.on(); // turn on jPanelMenu
});
提前感谢!

edited

根据下面的答案,我尝试了以下方法,但jpanelmenu无法运行(单击菜单触发器不会显示画布外菜单):

function wpa_132328_enqueue_scripts(){
if ( !is_admin() ) {

        // jQuery
        wp_enqueue_script(\'jquery\');

        // load jPanelMenu
        wp_enqueue_script(\'jpanelmenu\', get_bloginfo(\'template_directory\') . "/js/jquery.jpanelmenu.js");

    }
}
add_action( \'wp_enqueue_scripts\', \'wpa_132328_enqueue_scripts\' );
以及

if ( !is_admin() ) {

    // jQuery
    wp_enqueue_script(\'jquery\');

    // load jPanelMenu
    wp_enqueue_script(\'jpanelmenu\', get_bloginfo(\'template_directory\') . "/js/jquery.jpanelmenu.js");

}
以及

wp_enqueue_script(\'jpanelmenu\', get_bloginfo(\'template_directory\') . "/js/jquery.jpanelmenu.js", array(\'jquery\') );
以及

if ( !is_admin() ) {

    wp_enqueue_script(\'jpanelmenu\', get_bloginfo(\'template_directory\') . "/js/jquery.jpanelmenu.js", array(\'jquery\') ); 

}

2 个回复
最合适的回答,由SO网友:helgatheviking 整理而成

要使用WordPress捆绑版,只需停止对其进行反注册并将其替换为Google版本即可。

function wpa_132328_enqueue_scripts(){
    if ( !is_admin() ) {

        // jQuery
        wp_enqueue_script(\'jquery\');

        // load jPanelMenu
        wp_enqueue_script(\'jpanelmenu\', get_bloginfo(\'template_directory\') . "/js/jquery.jpanelmenu.js");

    }
}
add_action( \'wp_enqueue_scripts\', \'wpa_132328_enqueue_scripts\' );
“$未定义”错误表示您不在noconflict mode. 按如下方式调整代码:

jQuery(document).ready(function ($) {
    var jPM = $.jPanelMenu({
    duration: 100,
    openPosition: "240px",
    direction: "left",
    keyboardShortcuts: false
    });
    jPM.on(); // turn on jPanelMenu
});

SO网友:Otto

将依赖于jQuery的内容排队的正确方法如下:

wp_enqueue_script(\'jpanelmenu\', get_bloginfo(\'template_directory\') . "/js/jquery.jpanelmenu.js", array(\'jquery\') );

您不需要将jQuery本身排队。依赖关系为您解决了这一问题。

如果您将其正确挂接到wp\\u enqueue\\u scripts操作挂钩,则不需要进行is\\u管理检查。

结束