実現したいこと
ページを開いたときに、各コンテンツごとに1スライダーを出力したいです。
例)
Title1
slick-slider<div1><div1><div1>・・・・webパーツ
Title2
slick-slider<div2><div2><div2>
発生している問題・分からないこと
上手く表示されるエリアとされないエリアがランダムで発生します。
slick-sliderが動いていないのでコード構成ができておらずそのエリアのwebパーツ<div>要素が縦に並んでしまいます。色々試しましたが、現状一番落ち着いているコードを記載いたしますので。
お手数おかけして申し訳ございませんがお力添えをお願いいたします。
該当のソースコード
php(.php)
1 <?php 2 $sections2 = [ 3 ['id2' => '01', 'templateId2' => '外部webパーツIDです', 'header2' => 'ヘッダー','comment2'=>'コメント'], 4 ['id2' => '02', 'templateId2' => '外部webパーツIDです', 'header2' =>ヘッダー','comment2'=>'コメント], 5 ['id2' => '03', 'templateId2' => '外部webパーツIDです', 'header2' =>ヘッダー','comment2'=>'コメント], 6 ['id2' => '04' 'templateId2' => '外部webパーツIDです', 'header2' =>ヘッダー','comment2'=>'コメント], 7 ['id2' => '05' 'templateId2' => '外部webパーツIDです', 'header2' =>ヘッダー','comment2'=>'コメント], 8 ['id2' => '06' 'templateId2' => '外部webパーツIDです', 'header2' =>ヘッダー','comment2'=>'コメント], 9 ['id2' => '07' 'templateId2' => '外部webパーツIDです', 'header2' =>ヘッダー','comment2'=>'コメント], 10 ['id2' => '08' 'templateId2' => '外部webパーツIDです', 'header2' =>ヘッダー','comment2'=>'コメント], 11 ['id2' => '09' 'templateId2' => '外部webパーツIDです', 'header2' =>ヘッダー','comment2'=>'コメント] 12 ]; 13 foreach ($sections2 as $section2) { 14 extract($section2); 15 ?> 16 <section class="lp__pickup l-section" id="link-n1-U<?= $id2 ?>"> 17 <div class="l-container" id="link-n1-<?= $id2 ?>"> 18 <header class="lp__pickup-header heading__Lv2-wrap-center anime-fadeInBottom"> 19 <h1 class="heading__Lv1-main t-tCenter anime-splitStrFadeIn t-outline_b" data-splitdelay=".1"><?= ($header2); ?>の例</h1> 20 <h2 class="heading__Lv3-main t-tCenter t-outline_b"><?= ($comment2); ?></h2> 21 </header> 22 </div> 23 <div class="lp__pickup-list"> 24 <div class="porters__pickup" id="js-pickup-list"> 25 <script type="text/javascript" src="https://app-webparts-hrbc.porterscloud.com/po-b.js" data-template-id="<?= $templateId2 ?>"></script> 26 <script type="porters/webparts"></script> 27 </div> 28 </section> 29 <?php }?>
jQuery(.min.js)
1"use strict"; 2jQuery(function(i) { 3 var o = !1, 4 e = new MutationObserver(function(e) { 5 if (0 == o && i(".porters__pickup .po-joblist > *").length) { 6 i(".porters__pickup .po-joblist > *:not(.po-job-item),.po-header").remove(); 7 i(".porters__pickup .po-joblist.slick-initialized").slick("unslick"); 8 i(".porters__pickup .po-joblist").slick({ 9 autoplay:true, 10 accessibility:true, 11 pauseOnFocus:true, 12 dots: !1, 13 arrows: !0, 14 appendArrows: i("#js-pickup-arrow"), 15 infinite: !0, 16 speed: 500, 17 variableWidth: !0, 18 slidesToScroll: 1, 19 centerMode: !0, 20 slidesToShow: 4 21 }); 22 o = !0; 23 } 24 }), 25 t = document.getElementById("js-pickup-list"); 26 e.observe(t, { 27 childList: !0, 28 subtree: !0, 29 characterData: !0 30 }); 31}); 32
slick.min.js
1特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
【検索でやったこと】
Googleで書かれていたループごとにIDを振り、それにjquaryを対応させる方法を試しました。
→webパーツの表示すらされなくなってしまいました。
【自分でやったこと】
jquaryの実行条件を緩和してみました。
いろいろな場所にwebパーツが散らばってしまいました。
条件に合致する要素が現れるたびにこのjquaryを実行するよう方法を試しました。
→webパーツの表示すらされなくなってしまいました。
f5を何回か押すとすべて正常な形で出力されることから、ぺージが開かれたときに5回くらいf5かける仕様も試しました。
→webパーツの表示すらされなくなってしまいました。
補足
WEBパーツは「porters Web Parts」を使っています。
仮想環境はXAMMP/WordPress内の1ページになります。
かなり悩んでいる所になりますので、ご尽力いただけますと大変助かります。
申し訳ございませんがよろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー