我有一个wordpress网站,我想使用自定义插件进行扩展。在我的插件中,我使用了外部自定义JavaScript文件。
在JavaScript文件中,我需要检索Wordpress常量COOKIEPATH。但是我不怎么访问它。这是我的代码的样子:(需要将COOKIEPATH插入到可以在代码中看到COOKIEPATH的位置)
jQuery(document).ready(function($) {
var cookie_favs = '_favorites';
//test
if(jQuery.cookie(cookie_favs)!==null) {
jQuery('.actions-favorites').each(function(i, obj) {
var the_id = jQuery( this ).('name');
if(jQuery.cookie(cookie_favs).search(the_id)!=-1) {
jQuery('button[name='+the_id + ']').hide();
jQuery('#favoritesaction' + the_id).show();
jQuery('#favoritesaction' + the_id).append(' <span class="badge badge-important">' + jQuery.cookie(cookie_favs).split(',').length + '</span>');
//}
}
}
});
jQuery('.actions-favorites').click(function() {
var the_id = jQuery( this ).('name');
if(jQuery.cookie(cookie_favs)===null || jQuery.cookie(cookie_favs)=='') {
jQuery.cookie(cookie_favs, the_id ?>,{ expires: 60, path: COOKIEPATH });
} else {
var fav = $.cookie(cookie_favs);
jQuery.cookie(cookie_favs, fav + ',' + the_id,{ expires: 60, path: COOKIEPATH });
}
jQuery(this).fadeOut(150, function() {
jQuery('.actions-favorites-link').fadeIn(150);
jQuery('.actions-favorites-link').append(' <span class="badge badge-important">' + jQuery.cookie(cookie_favs).split(',').length + '</span>');
});
});
});
有人有答案吗?先感谢您!
最佳答案
在wordpress中,这很简单,您可以使用wp_localize_script本地化脚本,以将值从PHP传递到javascript。
在您要添加脚本的插件中,执行
wp_register_script( 'some_handle', 'path/to/myscript.js' );
// Now we can localize the script with our data.
$cookies = array( 'path' => COOKIEPATH );
wp_localize_script( 'some_handle', 'my_global_name', $cookies );
// The script can be enqueued now or later.
wp_enqueue_script( 'some_handle' );
现在,在您的javascript文件中,您可以访问一个神奇的全局变量
jQuery(document).ready(function($) {
var cookie_favs = '_favorites';
var cookie_path = my_global_name.path; // returns the cookie path
....etc