Wordpressカスタマイズ


SWELL FAQブロックをカスタマイズ|アコーディオン(開閉式)にする【有料級】 | Wordpressカスタマイズ
SWELLのFAQブロックは、JSON-LDの構造化データを出力できるので利用しているSWELLユーザーは多いと思います。
目次
SWELLのFAQブロックを開閉式にするカスタマイズ
SWELLのFAQブロックを開閉式にカスタマイズするのはそれほど大変ではありません。
少しのCSSとJavascriptで対応でき、テーマのHTMLの変更は不要です。
javascriptを追加する
FAQのQをクリックされたら、Aにclassfaq-openを追加する処理をjavascriptで書けばいいです。
add_action('wp_footer',function(){
?>
<script>
document.addEventListener("DOMContentLoaded", function() {
document.querySelectorAll('.swell-block-faq__item .faq_q').forEach(function(element) {
element.addEventListener("click", function() {
var answer = this.nextElementSibling;
this.classList.toggle('faq-open');
});
});
});
</script>
<?php
});
CSSを追加する
CSSで、faq-openの有無で動きを変えてあげれば、開閉式のFAQが完成します。
.swell-block-faq__item .faq_q{
cursor: pointer;
padding-right:1rem;
}
.swell-block-faq__item .faq_q::after {
position: absolute;
top: 50%;
right: .25rem;
display: block;
width: 7px;
height: 7px;
margin: auto;
content: '';
-webkit-transform: translate(0px,-2px) rotate(135deg);
transform: translate(0px,-2px) rotate(135deg);
border-top: 2px solid #000;
border-right: 2px solid #000;
transition:.5s;
}
.faq_q.faq-open::after {
transition:.5s;
-webkit-transform: translate(0px,2px) rotate(-45deg);
transform: translate(0px,2px) rotate(-45deg);
}
.faq_a{
transition:.5s;
}
.faq_q:not(.faq-open)+.faq_a{
padding-top: 0;
padding-bottom: 0;
height: 0;
opacity: 0;
overflow: hidden;
transition:.5s;
}
