WordPress - 插件 - 将JS插件目录中的图像文件排入JS文件

时间:2015-05-22 13:40:48

标签: javascript php wordpress plugins

我是为WP创建插件的新手,我还在学习。关于同一个问题我有两个问题:

1: 首先,我将js文件包含在我的插件 php-file

function theme_name_scripts() {
wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/example.js');
}

add_action( 'wp_enqueue_scripts', 'theme_name_scripts' );

它可以工作,但我想要做的是从我的插件url(wordpress / wp-content / plugins / example)找到它,而不是从我的模板目录。我该怎么做?

2: 在我的 js-file 中,我需要在插件基本URL(wordpress / wp-content / plugins / example / pix)中包含一些图像文件。该脚本在未用作插件时有效:

window.onload=function()
{

/* Example */

bp='/pix/', // base url of my images

imgnum=4, // number of images
thumb1=document.getElementById('thumb1'), // id of changing image
combobox1=document.getElementById('selection1'); // id of combobox.

combobox1.onchange=function()
{
thumb1.src=bp+'imagefile'+this.value+'.png';
}

我理解bp='/pix/',是错误的。但是什么是正确的?我想从template_directory中的文件夹加载图像。我该怎么做呢?我已经阅读了这两个主题,但我似乎无法弄明白:

Wordpress: How can I pick plugins directory in my javascript file?

write php inside javascript alert

1 个答案:

答案 0 :(得分:0)

您可以使用plugins_url()从插件目录中排队脚本。

在你的情况下,它会是这样的:

function theme_name_scripts() {
  wp_register_script('script-name', plugins_url('js/example.js', __FILE__));
}

要使javascript中的插件网址路径可用,您可以将wp_localize_script()plugin_dir_url()结合使用(我也可以在上面使用...)。

所以最终的结果是:

function theme_name_scripts() {
  // register your script
  wp_register_script('script-name', plugins_url('js/example.js', __FILE__));
  // or
  // wp_register_script('script-name', plugin_dir_url(__FILE__) . 'js/example.js');

  // make variables available in javascript
  wp_localize_script('script-name', 'wordpress_vars', 
                     array('plugin_path' => plugin_dir_url(__FILE__)));
}

在您的javascript中,您将拥有wordpress_vars变量。您的插件路径为wordpress_vars.plugin_path

请注意,我已修改wp_localize_script以将数组作为第3个参数发送。