2016-05-13 16 views
1

我在使用wp_localize_script时遇到了一些麻烦。关于这方面已经有很多问题了,但我不知道如何实施这些具体案例。我制作了一个jQuery文件,其中包含每个div后面带有特定类的图像。 jQuery本身很好,因为我可以使用段落标记更改图片标记,然后显示在浏览器中。下面是我在functions.php的用于插入图像的wp_localize_script

function wpa_scripts() { 
wp_enqueue_script(
    'divider', 
    get_template_directory_uri() . '/js/divider.js', 
    array('jquery'), 
    null, 
    true 
); 
$script_data = array(
    'image_path' => get_template_directory_uri() . '/images/' 
); 
wp_localize_script(
    'divider', 
    'divider_data', 
    $script_data 
); } add_action('wp_enqueue_scripts', 'wpa_scripts'); 

这里就是我在我的.js

jQuery(document).ready(function($){ 

$('.contentpage').after('<img src=" '$script_data' + divider_placeholder.png">'); }); 

我谁能告诉我我做错了什么?提前致谢。

亲切的问候, 燕姿

回答

1

你需要有'divider_data.image_path'而不是$script_data在你的jQuery函数:

jQuery(document).ready(function($){ 

    $('.contentpage').after('<img src="' + divider_data.image_path + 'divider_placeholder.png">'); 

}); 

参考:https://codex.wordpress.org/Function_Reference/wp_localize_script

+0

谢谢!我对WordPress很新,所以我的代码可能是我在互联网上找到的答案的憎恶。两个答案都是对的:) – Stef

1

你的变量$script_data是不是在你的js文件正确的语法以及不访问预定义的本地化变量divider_data

相反的:
$('.contentpage').after('<img src=" '$script_data' + divider_placeholder.png">'); });

它应该是:

$('.contentpage').after('<img src="' + divider_data.image_path + 'divider_placeholder.png">'); });