javascript — уникальный идентификатор для шорткодов WordPress при использовании более одного раза на странице?

В настоящее время я кодирую шорткод 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,
});

0

Решение

Вы можете использовать статическую переменную

static $i = 1;
$i++;

и использовать его как часть идентификатора

return "<div id='shortcode-div-{$i}'></div>";
4

Другие решения

Вы свободно устанавливать идентификатор шорткода среди других параметров:


1

Я бы порекомендовал использовать 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>
';
0
По вопросам рекламы [email protected]