我是为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?
答案 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个参数发送。