如何在WordPress的JavaScript函数中将图像路径作为数组传递?

时间:2016-12-29 10:18:08

标签: php wordpress

<script>
var myBgFader = $('.header').bgfader([
  'images/banner1-1.jpg',
  'images/banner1-2.jpg',
  'images/banner1-3.jpg',
  'images/banner1-4.jpg',
], {
  'timeout': 2000,
  'speed': 3000,
  'opacity': 0.4
})

myBgFader.start()
</script>

在bgfader数组中,我需要提供图像路径。我尝试了如上所示的法线,但图像没有显示。

我应该如何为此提供图像?

1 个答案:

答案 0 :(得分:3)

建议您将任何自定义JS代码移动到其自己的JS文件中,并使用wp_enqueue_script将JS文件排入队列

假设您使用wp_enqueue_script函数正确排入JS文件,请始终使用wp_localize_script函数将任何服务器端数据传递给JS文件。

在您的WordPress文件(主题或插件文件,具体取决于您的要求)中使用以下代码

add_action( 'wp_enqueue_scripts', 'my_custom_enqueue_scripts' );

function my_custom_enqueue_scripts() {

    // Enqueue the script
    wp_enqueue_script( 'some_handle', 'path/to/myscript.js' );

    // Localize the script with some data
    $some_data = array(
        'template_url' => get_bloginfo("template_url")
    );
    wp_localize_script( 'some_handle', 'object_name', $some_data );
}

然后在您的JS文件中,您可以访问以下网址

var myBgFader = $('.header').bgfader([
object_name.template_url + 'images/banner1-1.jpg',
object_name.template_url + 'images/banner1-2.jpg',
object_name.template_url + 'images/banner1-3.jpg',
object_name.template_url + 'images/banner1-4.jpg',
], {
  'timeout': 2000,
  'speed': 3000,
  'opacity': 0.4
})

myBgFader.start()