我有一个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

10-04 17:10