На самом деле нет необходимости использовать javascript, это можно сделать исключительно с помощью CSS.
- «Заголовок» - это метка для флажка (который скрыт). Нажатие на метку переключает свойство флажка «флажок».
- Ввод помещается непосредственно перед тем содержимым, которое вы хотите скрыть / показать.
- «Скрытый» контент скрыт с помощью css.
- соседний братский комбинатор в сочетании с псевдоселектором
:checked
позволяет стилизовать «скрытый» контент , особенно при проверке ввода : input:checked + .spoiler-content
.spoiler {
border: 1px solid #ccc;
}
.spoiler+.spoiler {
margin-top: 20px;
}
.spoiler input[type="checkbox"] {
display: none !important;
}
.spoiler-content {
height: auto;
max-height: 0;
overflow: hidden;
opacity: 0;
transition: all .5s;
}
input:checked+.spoiler-content {
max-height: 1000px;
opacity: 1;
}
<div class="spoiler">
<label class="spoiler-title" for="spoiler-1">
Spoiler Title
</label>
<input type="checkbox" id="spoiler-1">
<div class="spoiler-content">
Hidden Content
</div>
</div>
<div class="spoiler">
<label class="spoiler-title" for="spoiler-2">
Spoiler Title #2
</label>
<input type="checkbox" id="spoiler-2">
<div class="spoiler-content">
Hidden Content #2
</div>
</div>
ПРИМЕЧАНИЕ: «id» ввода и метки должны совпадать, но это будет тривиально, если создавать новые «id» с php и просто вводить их вВаша разметка легко:
<?php $spoiler_id = 'spoiler-' . rand(100000,99999999); ?>
Поскольку вы не поделились с нами ни одним из ваших кодов WordPress / PHP, мы не знаем, как вы добавляете это в свои посты, поэтому я не могу больше советоватьв частности, как ввести идентификатор.