저는 wordpress를 사용하고 있으며 단축 코드를 사용하여 게시물/페이지로 슬라이더를 끌어 올 수있는 기능을 제공하고자합니다.단축 코드를 사용하여 사용자 정의 게시 유형 및 반송 캐 러셀 쿼리
즉 나는 다음과 같은 짓을 [slider id="2"]
:
- 만든 커스텀 포스트 타입 '슬라이더'
- 포스트 유형 내에서 필요한 모든 필드를 만들 고급 사용자 정의 필드를 사용합니다.
을 사용하여 단축 코드를 생성 :
function landwSliderShortcode($atts = [], $content = null, $tag = '') { $atts = array_change_key_case((array)$atts, CASE_LOWER); $slider_atts = shortcode_atts([ 'id' => '1', ], $atts, $tag); return $slider_atts['id']; } function landwSliderShortcodes_init() { add_shortcode('slider', 'landwSliderShortcode'); } add_action('init', 'landwSliderShortcodes_init');
는
WP_Query
을 수행하고 HTML 슬라이더를 구축 할 것입니다 다른 함수를 호출 할 필요가
입니다 나는 고군분투하고있다. 나는이 지금까지 가지고있다 :
function getSliderData($sliderId) {
$slidercount = 0;
$args = array(
'post_type' => 'slider',
'post_status' => 'publish',
'posts_per_page' => '1',
'p' => $sliderId,
);
$sliderLoop = new WP_Query($args);
if ($sliderLoop->have_posts()) :
while ($sliderLoop->have_posts()) : $sliderLoop->the_post();
$image = get_sub_field('image');
$image_render = $image['sizes'][$image_asset_size];
$add_link = get_sub_field('add_link');
$link_type = get_sub_field('link_type');
$internal_link = get_sub_field('internal_link');
$external_link = get_sub_field('external_link');
$add_lightbox = get_sub_field('add_lightbox');
$lightboxasset = get_sub_field('lightbox_asset');
$lightboxassetcaption = get_sub_field('lightbox_caption');
$caption = get_sub_field('caption');
$sub_caption = get_sub_field('sub_caption');
?>
<div class="slider-wrap">
<?php if ($add_link) {
if ($link_type == "External") {
echo '<a class="carousel-slide-link" href="'.$external_link.'" target="_blank"></a>';
} else {
echo '<a class="carousel-slide-link" href="'.$internal_link.'"></a>';
}
}
?>
<?php if ($add_lightbox) { ?>
<a class="carousel-slide-link" data-fancybox data-src="#SliderModal<?php echo $slidercount ?>" target="_blank" href="javascript:;"></a>
<?php } ?>
<img src="<?php echo $image_render; ?>">
<!-- 6 Mar 17 added conditional to show the caption -->
<?php if (strlen($sub_caption) > 0 || strlen($caption) > 0) : ?>
<div class="post-wrap-meta">
<span><?php echo $sub_caption; ?></span>
<p class="slider-caption-text"><?php echo $caption; ?></p>
</div>
<?php endif ?>
</div>
<!-- output the modal -->
<div style="display: none;" class="standard__modal" id="SliderModal<?php echo $slidercount; ?>">
<?php echo $lightboxasset ?>
<p class="slider-caption-text">
<?php echo $lightboxassetcaption ?>
</p>
</div>
<?php
$slidercount ++;
endwhile;
?>
<?php
endwhile;
wp_reset_postdata();
endif;
}
내가이 기능에 sliderId
VAR를 통과하고 (나뿐만 아니라이 HTML에 추가 할 필요가 작은 자바 스크립트 기능이) 완벽하게 작동하는 슬라이더를 반환 할 수 있도록 노력하겠습니다.
누구에게나 미리 감사드립니다.