我的wordpress代码里面有什么问题

时间:2015-04-05 22:22:22

标签: php wordpress plugins wordpress-plugin wordpress-theming

我正在将样式表和Javascript文件添加到我的插件中。我使用了wp_enqueue_scripts,但是文件没有包含在body体内。

add_action( 'wp_enqueue_scripts', 'channelsScript');
function channelsScript()
{

    wp_enqueue_style('Chanels',plugins_url('JS/style.css'));
    wp_enqueue_style('Chanels',plugins_url('JS/style.min.css'));

    wp_register_script( 'chanelsJS',plugins_url('Chanels/JS/scrip.js'));
    wp_register_script( 'chanelsJS',plugins_url('Chanels/JS/jquery-1.9.1.js'));
    wp_register_script( 'chanelsJS',plugins_url('Chanels/JS/jquery-1.9.1.min.js'));
    wp_register_script( 'chanelsJS',plugins_url('Chanels/JS/jquery-ui.js'));

    wp_enqueue_script("chanelsJS");

    wp_localize_script('chanels','MyAjax', array( 'ajaxurl' => admin_url('admin-ajax.php')),array('jquery'),null,false);

}

当我将所有函数体放入admin_init hook然后style.css /style/min.css包含在body而不是.js文件中时,我不确定错误在哪里。

1 个答案:

答案 0 :(得分:1)

您正在注册几个具有相同名称的脚本。我不确定在使用该名称重新编写多个脚本后将chanelsJS排入队列时的行为是什么,但它绝对不是您想要的。你也正在两次注册jquery,一旦缩小,一次未被明确。尝试:

add_action( 'wp_enqueue_scripts', 'channelsScript');
function channelsScript()
{
    wp_enqueue_style('Chanels',plugins_url('JS/style.min.css'));

    wp_enqueue_script( 'chanelsJS',plugins_url('Chanels/JS/scrip.js'));
    wp_enqueue_script( 'chanelsJS-jquery',plugins_url('Chanels/JS/jquery-1.9.1.min.js'));
    wp_enqueue_script( 'chanelsJS-jquery-ui',plugins_url('Chanels/JS/jquery-ui.js'));


    wp_localize_script('chanelsJS','MyAjax', array( 'ajaxurl' => admin_url('admin-ajax.php')),array('jquery'),null,false);
}

请注意,我只是立即将脚本排队,而不是先注册它们。我还更新了本地化脚本调用中的名称。

此外,WordPress内置了jQuery和jQuery UI。除非你有充分的理由使用自己的jQuery版本,否则我建议使用WordPress版本。

编辑:我刚刚注意到您将其中一个脚本的路径指定为Chanels/JS/scrip.js。这是正确的还是Chanels/JS/script.js