javascript - 如何在Wordpress中添加JS并引用CSS或其他脚本?

标签 javascript jquery css wordpress

所以我正在 Wordpress 中开发自定义主题。我以前在 head.php 中有很多 JS,像这样:

jQuery(document).ready(function($) {

    $('.widgetblock').accordion({
        //args
    });


    if ( have_posts() ) {
        //stuff
    }
});

但是我已经读到在 Wordpress 中添加 JS 的正确方法是在 functions.php 中使用 wp_enqueue_script(),所以我正在尝试这样做。我所做的只是将相同的代码放入我保存在相应文件夹中的 .js 文件中,然后像这样加载它:

function script_assets() {
    wp_enqueue_script( 'js-code', get_template_directory_uri() . '/js/js-code.js', array( 'jquery', 'jquery-ui-widget' ) );
}

add_action( 'wp_enqueue_scripts', 'script_assets' );

我添加了 JQuery 和 JQuery UI 作为依赖项。

但是,这是行不通的。 Chrome 表示 accordion() 和 have_posts() 未定义。如果我尝试从我的 CSS 中引用特定元素,我也会遇到问题。

那么,我该怎么办?这可能是一个非常基本的问题,但我找不到解决方法。

另外一个问题是,如何100%确定某些JS脚本是在CSS之后加载的?我正在使用 -prefix-free应该在它之后加载,但我不确定 wp_enqueue 是否可行...... 编辑:我无法真正在页脚中加载该脚本,它需要在 CSS 之后立即加载。 :/

谢谢。

最佳答案

每次我不得不将 jQuery 添加到 WordPress 网站时,我都会使用我在 CSS-tricks 上找到的这段代码

if (!is_admin()) add_action("wp_enqueue_scripts", "my_jquery_enqueue", 11);
 function my_jquery_enqueue() {
 wp_deregister_script('jquery');
 wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", false,    null);
 wp_enqueue_script('jquery');
}

据我了解,一旦您以这种方式加载 jQuery,您就可以防止冲突,而且它只会加载一次。

关于javascript - 如何在Wordpress中添加JS并引用CSS或其他脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29188176/

相关文章:

javascript - JQuery/JavaScript : Is it possible do this (watch link below) with simple image on webpage?

javascript - 如何在jade中创建一个变量以在node.js中使用

javascript - 如何让saveRow函数等待jqGrid中的editRow函数

jquery - 如何选择当前拖动的元素?

jquery - 使用来自 Lavish 的自定义 Twitter Bootstrap 主题获取错误 Glyphicon-halflings-regular.ttf/woff/woff2

javascript - 如何在没有 _observer "magic"_(使用 vuecharts.js)的情况下将可变数量的数据集推送到图表数据?

javascript - 有些 JS 加载,有些则不加载

jquery - 与将位置保留在布局中的 .hide() 等效的是什么?

html - 如何将效果应用于 CSS 中的 unicode 字符?

css - Joomla 3.2 使用 css 文件