如何在WordPress中将PHP变量传递给JavaScript函数?
如何在WordPress中将PHP变量传递给JavaScript函数?
我试图将一个元素ID的值传递给add_action()
,而add_action()
会为页脚设置Slick Slider的JS。\n我得到的结果是:\n
$("#").slick({...
\n但我想要的是:\n
$("#rtt_grid_carrousel_5bd9bbeabd625").slick({...
\n以下是我目前的代码:\n
$uniqid = uniqid('rtt_grid_carrousel_'); js_rtt_grid_carrousel( $uniqid ); function js_rtt_grid_carrousel( $uniqid ) { add_action('wp_footer', function( $uniqid ) { ?>\n--编辑--\n沿途的编辑。\n所以,我们已经发现php变量确实传递到
js_rtt_grid_carrousel()
,\n但没有传递到add_action(\'wp_footer\', function(){...});
这个函数内部。
问题的原因是需要将一个PHP变量传递给一个JavaScript函数。解决方法是使用"use"关键字来将PHP变量传递给匿名函数。
具体的解决方法如下:
1. 首先,创建一个唯一的ID,使用uniqid函数生成一个以"rtt_grid_carrousel_"开头的唯一字符串,并将其赋值给$uniqid变量。
2. 创建一个名为js_rtt_grid_carrousel的函数,该函数接受$uniqid作为参数。
3. 在js_rtt_grid_carrousel函数中,使用add_action函数将一个匿名函数添加到wp_footer动作钩子中。
4. 在匿名函数中,使用"use"关键字将$uniqid变量传递给匿名函数。
5. 在匿名函数中,使用jQuery选择器将$uniqid变量作为参数传递给slick函数,实现对应的功能。
6. 将整个JavaScript代码块嵌入到script标签中,并将该标签添加到wp_footer函数中。
7. 最后,将js_rtt_grid_carrousel函数调用的参数替换为$args,以便在一个数组中传递更多的设置。
以上就是将PHP变量传递给JavaScript函数的解决方法。
$uniqid = uniqid('rtt_grid_carrousel_'); js_rtt_grid_carrousel( $uniqid ); function js_rtt_grid_carrousel( $uniqid ) { add_action('wp_footer', function() use ( $uniqid ) { ?> <script id="rtt_grid_carrousel" type="text/javascript"> $(document).ready(function () { $("#<?php echo $uniqid ?>").slick({ dots: false, arrows: false, infinite: false, slidesToShow: 1, slidesToScroll: 1, draggable: false, vertical: false, centerMode: false, adaptiveHeight: true, // fade: true, // cssEase: "linear", }); }); </script> <?php }); }
请注意上述代码中的"use"关键字。
希望以上解决方法对您有所帮助。