在Java脚本中使用WP函数

时间:2014-06-02 作者:SPi

我试图在javascript函数中使用PHP变量。使用WP函数的正确方法是什么get_current_user_id() 在get通过wp_enqueue_script? 现在我发现这个错误

错误:调用未定义的函数。。。

myscript.php

<?php header(\'Content-Type\', \'text/javascript\');
?>
  jQuery(document).ready(function(){

         jQuery("#location option").each(function () {
             if (jQuery.inArray(jQuery(this).val(), locs) != -1) {
                 jQuery(this).prop(\'selected\', true);
             };
         });

         if ( typeof jQuery.fn.chosen !== \'undefined\' ){

         <?php 
         $userID=get_current_user_id();
            if($userID==\'3\') { 
             $max=6;
         } else {
            $max=3;
         }
         ?>
         jQuery("#location").chosen({ max_selected_options: "<?php echo $max; ?>"

          });        
    }


jQuery(\'select\').each(function(index) {
            jQuery(this).chosen({
                disable_search_threshold: 1
            });
        })

    });
在函数中。php:

add_action(\'wp_enqueue_scripts\',\'wordpress_scripts\');
function wordpress_scripts() {
    wp_register_script( \'chosen\', get_template_directory_uri() . \'/assets/libraries/chosen/chosen.jquery.min.js\', array( \'jquery\' ),\'\',true);
    wp_enqueue_script( \'chosen\' );

    wp_register_script(\'myscript\', get_template_directory_uri().\'/assets/js/myscript.php\', array(\'jquery\'),\'\',true);
    wp_enqueue_script(\'myscript\');
}
对此有什么建议吗?

1 个回复
SO网友:SPi

我发现了wp_localize_scripts here 它解决了我的问题:

functions.php

$var=get_current_user_id();

$params = array(
  \'max\' => $var
);

wp_localize_script( \'myscript\', \'MyScriptParams\', $params );
wp_enqueue_script(\'myscript\');
.js 我可以使用的文件检索此变量MyScriptParams.max.

结束

相关推荐

带有Flexlider jQuery问题的引导

我正在使用推特引导构建Wordpress主题。我已注册引导程序并将其排入队列。js文件(包括其他文件),一切正常。这是我的代码:wp_register_script( \'wp-flat-bootstrap\', get_template_directory_uri() . \'/js/bootstrap.min.js\', array(\'jquery\'), \'\', true ); 然而,我刚刚集成了WooThemes的Flexslider,我还注册了它并将其加入队列。js文件。这是我的