我正在开发一个wordpress插件,当使用wp_localize_script将值传递给jquery时,我遇到了一个问题。这是我的代码
function newsbox_load_custom_script() {
$newsbox_parameters = array(
'newsPerPage' => 4 ,
'newsTickerInterval' => 2500
);
wp_enqueue_script('newsbox-custom-script', plugins_url( '/scripts/custom.js', __FILE__ ),'', '1.0.1', true);
wp_localize_script('newsbox-custom-script', 'newsbox_parameters',$newsbox_parameters);
}
add_action('wp_enqueue_scripts', 'newsbox_load_custom_script');
这是jquery代码
jQuery(document).ready(function(){
jQuery(".news_list").bootstrapNews({
newsPerPage: newsbox_parameters.newsPerPage,
autoplay: true,
pauseOnHover: true,
navigation: false,
direction: 'down',
newsTickerInterval: newsbox_parameters.newsTickerInterval,
onToDo: function () {
//console.log(this);
}
});
});
如果我像
那样写jquery jQuery(document).ready(function(){
jQuery(".news_list").bootstrapNews({
newsPerPage: 4,
autoplay: true,
pauseOnHover: true,
navigation: false,
direction: 'down',
newsTickerInterval: 2500,
onToDo: function () {
//console.log(this);
}
});
});
然后它完美地运作。 http://digitalsensebd.com/newsbox/
但是如果我使用wp_localize_script传递值,则它无效http://digitalsensebd.com/newsbox_plugin/?page_id=4
请告诉我解决方案
答案 0 :(得分:3)
我在两个示例中看到的一个区别是,在您的工作示例中,您使用的是newsPerPage
和newsTickerInterval
的整数值。
wp_localize_script
将创建字符串值。因此,在custom.js
脚本中,尝试在使用它们之前将它们转换为整数。作为测试,试试这个:
jQuery(document).ready(function(){
newsbox_parameters.newsPerPageInt = parseInt(newsbox_parameters.newsPerPage, 10);
newsbox_parameters.newsTickerIntervalInt = parseInt(newsbox_parameters.newsTickerInterval, 10);
jQuery(".news_list").bootstrapNews({
newsPerPage: newsbox_parameters.newsPerPageInt,
autoplay: true,
pauseOnHover: true,
navigation: false,
direction: 'down',
newsTickerInterval: newsbox_parameters.newsTickerIntervalInt,
onToDo: function () {
//console.log(this);
}
});
});