【发布时间】:2019-04-04 18:19:33
【问题描述】:
我正在尝试将元素 ID 值传递给 add_action(),这又会在页脚中为 Slick Slider 设置 JS。
我得到的结果是:
$("#").slick({...
但我想要的是:
$("#rtt_grid_carrousel_5bd9bbeabd625").slick({...
这是我目前的代码:
$uniqid = uniqid('rtt_grid_carrousel_');
js_rtt_grid_carrousel( $uniqid );
function js_rtt_grid_carrousel( $uniqid ) {
add_action('wp_footer', function( $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
});
}
--编辑-- 沿路编辑。 所以,我们发现 php var 确实被传递给了
js_rtt_grid_carrousel()
但不是
add_action('wp_footer', function(){...}); inside that function
【问题讨论】:
-
似乎这应该可行,但我对 PHP 的经验并不丰富。也许尝试将变量输出到页面的几个位置,看看它是否一直正确。
-
在这一行 $("#").slick({ Put $("#".."").slick ({
-
您不应该混合使用 PHP 和 JS - 这是一种不好的做法,会导致意外行为。使用 data- 属性创建隐藏的输入或隐藏的 DOM 元素
-
或者更好的是,我没有看到任何条件语句,所以如果 $uniqid 有效,为什么不使用 if/else - 如果是,请在 .js 文件中添加一个光滑目标的泛型类
-
@wadleo 无效 - 关闭 PHP 允许 HTML - 所以 OP 代码很好