2012-02-02 61 views
0

好,我一直在处理这个代码,现在一个星期......我不想给那么请帮我在这里:)如何与wp_enqeue_scripts在WordPress插件工作

所以我有这个JavaScript文件我正试图将其纳入我的插件。当我尝试使用wp_enqeue_script函数时,它根本不起作用,但是当我使用Include函数时,它完美地工作,但只能在我的本地服务器上运行。如果将插件安装在托管服务器上,它甚至不会安装插件。哪里有问题?

该文件位于/includes/links.js

我如何获得WordPress的加载这个脚本,我在哪里有呢?我试图检查wordpress codex,但让我更加困惑。如果您需要检查代码,请告诉我。

在此先感谢。

+1

给我们看一些代码... – 2012-02-02 16:51:53

回答

0

的两大部件得到一个脚本加载:

<?php wp_register_script('script-handle', 'script-location'); ?> 

<?php wp_enqueue_script('script-handle'); ?> 

wp_enqueue_script不会加载脚本,除非它已先行注册(注意,WP附带了许多预注册脚本,如jQuery的,所以在这种情况下,所有你需要做的是排队剧本。但是,对于未绑定在WP中的自定义脚本,您需要先注册它)。

因此,基于这个问题,假设你已经将脚本放在你的THEME目录下的文件夹“includes”中(例如wp-content/themes/my-theme/includes/links.js ),那么这就是你会在你的主题的functions.php文件做什么:

<?php 
    function my_theme_register_scripts() { 
     wp_register_script('my-script-handle', get_bloginfo("template_url") . '/includes/links.js'); 
     wp_enqueue_script('my-script-handle'); 
    } 

    // If you want to use the script on the FRONT end of the site, then.... 
    add_action('init', 'my_theme_register_scripts'); 
    // If you want to use the script on the BACK end of the site.... 
    add_action('admin_init', 'my_theme_register_scripts'); 
?> 

而且大卫 - 是正确的 - 你需要确保你的主题既有wp_head()和wp_footer()调用在其中,否则的东西不会按预期的那样工作...

+0

好的感谢您的回复cale_b ...我可以将它用于插件吗? – 2012-02-03 18:20:37

+0

是的。这可以在主题或插件文件中工作。祝你好运! – 2012-02-03 19:06:41

0

那么首先,检查是否正在加载的脚本,如果没有则检查两件事情:

1)您排队得当wp_enqueue_script('script name',get_stylesheet_directory_uri() . '/js/links.js','','',false);假设你的脚本是在包括您的当前主题的文件夹

2 )你在你的头wp_head()地方(有假设你装在头部其他明智的,你需要wp_footer()但实际上你应该有两个