我目前正在编写一个WordPress短代码,其中包含一些jquery。为了让jquery正常工作,我需要使用一个具有唯一#ID的div。如果短代码使用一次,效果很好,但如果他们在一个页面上多次使用短代码,就会破坏javascript。
所以,我想知道是否有什么方法可以在每次调用短代码时使用唯一的ID?或者,如果在一个页面上多次使用快捷代码,可以通过某种方式获得不同的ID?
假设我有短代码功能
function my_shortcode() {
$my_shortcode='<div id="demo">My content</div>';
return $my_shortcode;
} //end function
和jquery
$("#demo").click(function{
autoplay: true,
});
您可以使用静态变量
static $i = 1;
$i++;
并将其用作ID 的一部分
return "<div id='shortcode-div-{$i}'></div>";
您可以自由设置短代码的id和其他参数:
[gallery id="123" size="medium"]
我建议使用UUID。
在我的项目中,我生成它并将其附加到$atts
元素中。
add_shortcode('some_shortcode', function ($atts, $content = null) {
...
$atts['uuid'] = uniqid();
...
return 'I have a unique ID: ' . $atts['uuid'];
}
这可以很容易地附加到数据属性,例如
return echo '
<div data-group-uuid="' . $atts['uuid'] . '">
I'm a container with a unique ID
</div>
';