В настоящее время я кодирую шорткод WordPress, и он связан с некоторыми jquery. Для правильной работы jquery мне нужно использовать div с уникальным #ID. Если шорткод используется один раз, он работает нормально, но если бы они использовали шорткод более одного раза на странице, это нарушило бы JavaScript.
Итак, мне интересно, есть ли какой-нибудь способ использовать уникальный идентификатор каждый раз, когда вызывается шорткод? Или какой-то способ получить другой идентификатор, если шорткод используется на странице более одного раза?
Предположим, у меня есть функция шорткода
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++;
и использовать его как часть идентификатора
return "<div id='shortcode-div-{$i}'></div>";
Вы свободно устанавливать идентификатор шорткода среди других параметров:
Я бы порекомендовал использовать 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>
';