Lightgallery: ์—ฌ๋Ÿฌ ๋™์  ์ธ์Šคํ„ด์Šค

์— ๋งŒ๋“  2021๋…„ 07์›” 09์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: sachinchoolur/lightGallery

์„ค๋ช…

์•ˆ๋…• !
์Œ... ๋‚ด Wordpress ๊ฒŒ์‹œ๋ฌผ์— ํฌํ•จ๋œ ์‚ฌ์ง„์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋™์  ๊ฐค๋Ÿฌ๋ฆฌ๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์„œ์™€ ์ธํ„ฐ๋„ท์—์„œ ๋ณด๋ ค๊ณ ํ–ˆ์ง€๋งŒ ๋™์  ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์–ธ๊ธ‰์ด ์—†์Šต๋‹ˆ๋‹ค.
๋„์›€์„ ์ฃผ์…”์„œ ๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

ํŽธ์ง‘ : ๋‚˜๋Š” WordPress์—์„œ v2๋ฅผ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜์—†๋Š” ํ•œ ๋ฒ„์ „ 1.6.0์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ...

์˜ˆ์ƒ ๊ฒฐ๊ณผ

๋‚˜๋Š” ๋‹จ์ง€ ๋ผ์ดํŠธ ๊ฐค๋Ÿฌ๋ฆฌ์˜ ๊ด€๋ จ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํŠผ์„ ์ œ๊ณตํ•˜๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์— ๋™์  ์ธ์Šคํ„ด์Šค๋ฅผ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ๊ฒฐ๊ณผ

๋ฌธ์ œ๋Š” ์ƒ์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ(๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋‚ด๊ฐ€ ๋ง์นœ ๋ถ€๋ถ„์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Œ) ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํ•ญ์ƒ ๋™์ผํ•œ ๊ฐค๋Ÿฌ๋ฆฌ ํŒ์—…์ด ํ‘œ์‹œ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ

๋‘ ๊ฐœ์˜ ์ฒซ ๋ฒˆ์งธ ์‚ฌ๋ก€

<div class="slides price">
     <div class="slide">
           <div class="bodytext">
                <button type="button" id="dynamic2002">2002</button>
                    <script>
                         var gallery2002 = [
                              {
                                   src: '*****/wp-content/uploads/2021/04/IMG_0116-1024x768.jpg',
                                   thumb: '*****/wp-content/uploads/2021/04/IMG_0116-1024x768.jpg',
                              },
                              {
                                   src: '*****/wp-content/uploads/2021/04/IMG_0117-1024x768.jpg',
                                   thumb: '*****/wp-content/uploads/2021/04/IMG_0117-1024x768.jpg',
                              },
                              {
                                   src: '*****/wp-content/uploads/2021/04/IMG_0326-1024x768.jpg',
                                   thumb: '*****/wp-content/uploads/2021/04/IMG_0326-1024x768.jpg',
                              },
                              {
                                   src: '*****/wp-content/uploads/2021/04/IMG_0327-1024x768.jpg',
                                   thumb: '*****/wp-content/uploads/2021/04/IMG_0327-1024x768.jpg',
                              }
                         ];
                         jQuery('#dynamic2002').on('click', function() {
                              jQuery(this).lightGallery({
                                   hash: false,
                                   dynamic: true,
                                   dynamicEl: gallery2002,
                                   galleryId: 1
                              });

                         });
                    </script>
               </div>
          </div>
          <div class="slide">
               <div class="bodytext">
                    <button type="button" id="dynamic1964">1964</button>
                    <script>
                         var gallery1964 = [
                              {
                                   src: '*****/wp-content/uploads/2021/03/IMG_0367.jpg',
                                   thumb: '*****/wp-content/uploads/2021/03/IMG_0367.jpg',
                              },
                              {
                                   src: '*****/wp-content/uploads/2021/03/IMG_0368-1024x768.jpg',
                                   thumb: '*****/wp-content/uploads/2021/03/IMG_0368-1024x768.jpg',
                              },
                              {
                                   src: '*****/wp-content/uploads/2021/03/IMG_0369-1024x768.jpg',
                                   thumb: '*****/wp-content/uploads/2021/03/IMG_0369-1024x768.jpg',
                              },
                              {
                                   src: '*****/wp-content/uploads/2021/03/IMG_0370-768x1024.jpg',
                                   thumb: '*****/wp-content/uploads/2021/03/IMG_0370-768x1024.jpg',
                              }
                         ];
                         jQuery('#dynamic1964').on('click', function() {
                              jQuery(this).lightGallery({
                                   hash: false,
                                   dynamic: true,
                                   dynamicEl: gallery1964,
                                   galleryId: 2
                              });
                         });
                    </script>
               </div>
          </div>

๋ชจ๋“  7 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @dphermes ,

lightGallery 1.x ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. lightGallery 2.x์—๋Š” jQuery๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ๋ชจ - https://www.lightgalleryjs.com/demos/dynamic-mode/
๋ฌธ์„œ - https://www.lightgalleryjs.com/docs/dynamic-variables/

์•„๋ž˜ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ์€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<div class="slides price">
     <div class="slide">
           <div class="bodytext">
                <button type="button" id="dynamic2002">2002</button>
                    <script>
                         var gallery2002 = [
                              {
                                   src: '*****/wp-content/uploads/2021/04/IMG_0116-1024x768.jpg',
                                   thumb: '*****/wp-content/uploads/2021/04/IMG_0116-1024x768.jpg',
                              },
                              {
                                   src: '*****/wp-content/uploads/2021/04/IMG_0117-1024x768.jpg',
                                   thumb: '*****/wp-content/uploads/2021/04/IMG_0117-1024x768.jpg',
                              },
                              {
                                   src: '*****/wp-content/uploads/2021/04/IMG_0326-1024x768.jpg',
                                   thumb: '*****/wp-content/uploads/2021/04/IMG_0326-1024x768.jpg',
                              },
                              {
                                   src: '*****/wp-content/uploads/2021/04/IMG_0327-1024x768.jpg',
                                   thumb: '*****/wp-content/uploads/2021/04/IMG_0327-1024x768.jpg',
                              }
                         ];
                          const dynamicGal1 = lightGallery( jQuery('#dynamic2002')[0], {
                                   hash: false,
                                   dynamic: true,
                                   dynamicEl: gallery2002,
                                   galleryId: 1
                              });
                         jQuery('#dynamic2002').on('click', function() {
                            dynamicGal1.openGallery();
                         });
                    </script>
               </div>
          </div>
          <div class="slide">
               <div class="bodytext">
                    <button type="button" id="dynamic1964">1964</button>
                    <script>
                         var gallery1964 = [
                              {
                                   src: '*****/wp-content/uploads/2021/03/IMG_0367.jpg',
                                   thumb: '*****/wp-content/uploads/2021/03/IMG_0367.jpg',
                              },
                              {
                                   src: '*****/wp-content/uploads/2021/03/IMG_0368-1024x768.jpg',
                                   thumb: '*****/wp-content/uploads/2021/03/IMG_0368-1024x768.jpg',
                              },
                              {
                                   src: '*****/wp-content/uploads/2021/03/IMG_0369-1024x768.jpg',
                                   thumb: '*****/wp-content/uploads/2021/03/IMG_0369-1024x768.jpg',
                              },
                              {
                                   src: '*****/wp-content/uploads/2021/03/IMG_0370-768x1024.jpg',
                                   thumb: '*****/wp-content/uploads/2021/03/IMG_0370-768x1024.jpg',
                              }
                         ];
                         const dynamicGal2 = lightGallery( jQuery('#dynamic1964')[0], {
                                   hash: false,
                                   dynamic: true,
                                   dynamicEl: gallery1964,
                                   galleryId: 2
                              });
                         jQuery('#dynamic1964').on('click', function() {
                            dynamicGal2.openGallery();
                         });
                    </script>
               </div>
          </div>

๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

ํ™•์ธ. ์ˆ˜์ •๋ณธ๋งŒ ๋ดค์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์ข‹์•„ ๋ณด์ž…๋‹ˆ๋‹ค.

1.x๋กœ codepen ๋ฐ๋ชจ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค - https://codepen.io/sachinchoolur/pen/qryByV

2.x๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. 2.x์—์„œ ์–ด๋–ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ ... ์‚ฌ์‹ค ์ €๋Š” 1.6.0 ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ php์—์„œ ์ƒ์„ฑ๋˜๊ณ  id ๋ณ€์ˆ˜์™€ ์ด๋ฏธ์ง€ URL์ด ์›Œ๋“œํ”„๋ ˆ์Šค ํ…œํ”Œ๋ฆฟ php ํŒŒ์ผ์˜ ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ์—์„œ php๋กœ ํ‘ธ์‹œ๋ฉ๋‹ˆ๋‹ค.

     <script>
          var gallery<?= get_the_ID(); ?> = [
               <?php
                    $media = get_attached_media('image');
                    foreach(array_slice($media, 0, 6) as $m) {
                         $mee = wp_get_attachment_image_src($m->ID, 'large');
                         echo '{
                              src: \''.$mee[0].'\',
                              thumb: \''.$mee[0].'\',
                         },';
                    }
               ?>
          ];
          const dynamicGal<?= $i ?> = lightGallery( jQuery('#dynamic<?= get_the_ID(); ?>')[0], {
               dynamic: true,
               dynamicEl: gallery<?= get_the_ID(); ?>,
               galleryId: <?= $i ?>
          });
          jQuery('#dynamic<?= get_the_ID(); ?>').on('click', function() {
               dynamicGal<?= $i ?>.openGallery();
               });
     </script>

๋ฌธ์ œ๋Š” 2.x์—์„œ ReferenceError: Can't find variable: lightGallery ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ง€๊ธˆ ๋ฐ”๋กœ codepen ๋ฐ๋ชจ๋ฅผ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ;) ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

v2.x์—์„œ ReferenceErrors๊ฐ€ ์‚ฌ๋ผ์ง€๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
์—ฌ์ „ํžˆ ๊ฐ™์€ ๊ฐค๋Ÿฌ๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜์ง€๋งŒ...
๊ฐค๋Ÿฌ๋ฆฌ๋ฅผ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์—ฌ๊ธฐ ๋ฅผ ํด๋ฆญํ•˜์„ธ์š”... ์Šฌ๋ผ์ด๋”์˜ ํšŒ์ƒ‰ ์˜์—ญ(์‚ฌ์ง„ ๋˜๋Š” YT ๋น„๋””์˜ค ์•„๋ž˜)์— id(์˜ˆ: 2002)๊ฐ€ ํฌํ•จ๋œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๊ฐค๋Ÿฌ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ "2002" ๋ฒ„ํŠผ์ด ํ•ญ์ƒ ๋‹ค๋ฅธ ๋ชจ๋“  ๋ฒ„ํŠผ ์œ„์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํƒ€๊ฒฉ CSS๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

.slides.price .slide.current {
    z-index: 9;
}

.slides.price .slide {
    background-color: #333;
}

ํ˜ธ.. ๊ทธ๊ฑธ ์–ด๋–ป๊ฒŒ ๋ชป ๋ดค์–ด? CSS๋ฅผ ์ž˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉํ•œ ๋Š๋‚Œ... ํ•˜ํ•˜!
๋งŽ์€ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•˜๊ณ  ๋„ˆ๋ฌด ๋นจ๋ฆฌ ์‘๋‹ตํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ;)

๋„์›€์ด ๋˜์—ˆ๋‹ค๋‹ˆ ๋‹คํ–‰์ž…๋‹ˆ๋‹ค ๐Ÿ˜Š

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰