如何在 WordPress 主题中包含 jQuery?

Posted

技术标签:

【中文标题】如何在 WordPress 主题中包含 jQuery?【英文标题】:How to include jQuery in a WordPress theme? 【发布时间】:2014-02-10 23:04:31 【问题描述】:

我是 WordPress 的新手,我正在研究如何将 jQuery 包含到主题中。

我在 functions.php 主题中创建了以下函数:

function load_java_scripts() 
    // Load FlexSlider javascript that handle the SlideShow:
    wp_enqueue_script('jQuery-js', 'http://code.jquery.com/jquery.js', array(), '1.0', true);

add_action('wp_enqueue_scripts', 'load_java_scripts');

所以我认为我可以将它添加为一些其他 JavaScript 或 CSS 本地资源,但我不确定这种方法,因为在这种情况下 jquery.js 不是本地资源,而是在线资源(是一样的吗?)

我也有一些疑问,因为在网上搜索我发现了不同的方法来将 jQuery 添加到我的主题中,比如one。

你能给我一些关于如何正确完成这项任务的信息吗?

【问题讨论】:

为什么要手动包含 jquery?不是都已经包含了吗? 【参考方案1】:

您没有使用 WordPress 中的 jQuery 有什么具体原因吗?

如果您需要添加依赖于 jQuery 的 JavaScript 文件,您可以将 jQuery 添加为 dependency。

<?php

function my_scripts_method() 
    wp_enqueue_script(
        'custom-script',
        get_stylesheet_directory_uri() . '/js/custom_script.js', #your JS file
        array( 'jquery' ) #dependencies
    );


add_action( 'wp_enqueue_scripts', 'my_scripts_method' );

?>

请注意,WordPress 会在 no conflict wrappers 中加载 jQuery。所以你的代码应该是这样的:

jQuery(document).ready(function($) 
    // Inside of this function, $() will work as an alias for jQuery()
    // and other libraries also using $ will not be accessible under this shortcut
);

【讨论】:

谢谢@RRikesh,这就是问题所在。我忽略了 jQuery 加载。我不知道无冲突包装器。由于某种原因,我似乎无法将您的答案标记为解决方案。【参考方案2】:

由于 WP 已经自带 jQuery,我会简单地为你的主题加载它,像这样将它添加到你的 functions.php 中

function load_scripts()
    //Load scripts:
    wp_enqueue_script('jquery'); # Loading the WordPress bundled jQuery version.
    //may add more scripts to load like jquery-ui

add_action('wp_enqueue_scripts', 'load_scripts');

有几种方法可以将 jQuery 包含到主题中。我总是使用 WP 捆绑版本,我觉得非常简单。

【讨论】:

【参考方案3】:

在 wordpress 中不需要自定义 Jquery。 将依赖项添加为“jquery”,它将自动加载。

【讨论】:

【参考方案4】:

试试这个,

<?php
    function load_external_jQuery() 
        wp_deregister_script( 'jquery' ); // deregisters the default WordPress jQuery 
        $url = 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'; // the URL to check against  
        $test_url = @fopen($url,'r'); // test parameters  
        if( $test_url !== false )  // test if the URL exists if exists then register the external file  
            wp_register_script('jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js');
        
        else// register the local file 
            wp_register_script('jquery', get_template_directory_uri().'/js/jquery.js', __FILE__, false, '1.7.2', true);  
        
        wp_enqueue_script('jquery'); // enqueue the jquery here
    
    add_action('wp_enqueue_scripts', 'load_local_jQuery'); // initiate the function 
?>

【讨论】:

【参考方案5】:

您可以使用以下方法来包含 jQuery:

wp_enqueue_script( 'jquery' );  

wp_enqueue_script( 'load-js-validate', 'foldername/jquery.js' );

Directly add in header file.<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.js"></script>

function js_scripts() 
wp_enqueue_script( 'jquery', get_template_directory_uri() . '/js/example.js');


add_action( 'wp_enqueue_scripts', 'js_scripts' ); // add this in function file

【讨论】:

以上是关于如何在 WordPress 主题中包含 jQuery?的主要内容,如果未能解决你的问题,请参考以下文章

在WordPress主题中包含jQuery

在主题Wordpress中包含jquery

如何在自定义 .php 文件中包含 WordPress 函数?

如何在自定义.php文件中包含WordPress功能?

在 functions.php (WordPress) 中包含 ACF

在 WordPress 网站中包含汉堡菜单