在wordpress functions.php子主题中链接javascript文件?

时间:2013-10-27 22:37:26

标签: php jquery wordpress load

嗨,我正在尝试使用我的wordpress二十二个孩子主题的函数php中的几个js文件。

这是否正确,因为它不会加载任何东西?我正在尝试添加此雪效果http://seb.ly/demos/JSSnow/snow3d.html http://www.jqueryrain.com/?_ol9H3hd

    /** Load scripts */
add_action( 'wp_enqueue_scripts', 'wpse82474_load_scripts' );
function wpse82474_load_scripts()
{
    wp_enqueue_script('my-theme-script' ,get_stylesheet_directory_uri().'/js/Snow.js' ,array( 'jquery' ));
    wp_enqueue_script('my-theme-script' ,get_stylesheet_directory_uri().'/js/ThreeCanvas.js' ,array( 'jquery' ));
    wp_enqueue_script('my-theme-script' ,get_stylesheet_directory_uri().'/js/Event.js' ,array( 'jquery' ));
}
wp_enqueue_script( 'jquery' ); // Load jQuery
wp_script_is( 'jquery', 'registered' ) AND wp_enqueue_script( 'jquery' );

感谢您的帮助

任何想法都很有用

谢谢朱迪

1 个答案:

答案 0 :(得分:2)

js文件位于什么文件夹中?在子主题文件夹中?还是父主题文件夹?在最后一种情况下,您不应该使用get_stylesheet_directory_uri()。请改用get_template_directory_uri()(get_template_directory_uri)。 get_stylesheet_directory_uri()用于获取主题样式表的文件夹,您需要主题文件夹的位置。

wp_enqueue_script('my-theme-script', get_template_directory_uri().'/js/Snow.js' ,array( 'jquery' ));

此外,您无需致电:

wp_enqueue_script( 'jquery' );

当'my-theme-script'被加载时,'jquery'也会自动加载,因为'my-theme-script'依赖于'jquery'。

此外,您可以为每个脚本添加一个唯一的句柄名称,如:

wp_enqueue_script('my-theme-script-snow', get_stylesheet_directory_uri().'/js/Snow.js' ,array( 'jquery' ));
wp_enqueue_script('my-theme-script-treecanvas', get_stylesheet_directory_uri().'/js/ThreeCanvas.js' ,array( 'jquery' ));
wp_enqueue_script('my-theme-script-event', get_stylesheet_directory_uri().'/js/Event.js' ,array( 'jquery' ));

修改

要重新创建雪景效果,请执行以下操作:

  • 在您的子主题中,创建文件夹imgjs
  • img中,放置文件ParticleSmoke.png
  • js中,放置文件Snow.jsThreeCanvas.js
  • 现在,将以下代码行从文件"snow3d.html"复制到名为Snow3D.js的文件中,并将其放在js文件夹中:第27行直到144。
  • 替换以下行:

    particleImage.src = '/img/ParticleSmoke.png';

  • 成:

    particleImage.src = img_folder + '/ParticleSmoke.png';

  • 在“Snow3D.js”末尾添加以下代码:

    jQuery( function() { init(); } );

functions.php中,添加以下代码。请注意线条的顺序:

add_action( 'wp_enqueue_scripts', 'wpse82474_load_scripts' );
function wpse82474_load_scripts()
{
    wp_enqueue_script( 'my-theme-script-threecanvas', get_stylesheet_directory_uri().'/js/ThreeCanvas.js', array( 'jquery' ) );
    wp_enqueue_script( 'my-theme-script-snow', get_stylesheet_directory_uri().'/js/Snow.js', array( 'my-theme-script-threecanvas' ) );
    wp_enqueue_script( 'my-theme-script-snow3d', get_stylesheet_directory_uri().'/js/Snow3D.js', array( 'my-theme-script-snow' ) );

    $img_folder = get_stylesheet_directory_uri() . "/img/";

    wp_localize_script( 'my-theme-script-snow3d', 'img_folder', $img_folder );
}
  • 您的style.css似乎没问题。

我认为你现在好了。让我知道!