?AlkantarClanX12
| Current Path : /home/rankinh/saintgilleslesbains-bis/wp-content/themes/divi-child/inc/shortcodes/ |
| Current File : /home/rankinh/saintgilleslesbains-bis/wp-content/themes/divi-child/inc/shortcodes/agenda.php |
<?php
/**
* Shortcode [sglb_home_agenda]
* Affiche un bloc d'introduction et un slider des prochains événements.
*/
add_shortcode('sglb_home_agenda', function() {
// 1. Configuration de la requête
$args = array(
'post_type' => 'sglb_event',
'posts_per_page' => 8,
'meta_key' => '_sglb_event_date_start',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => '_sglb_event_date_start',
'value' => date('Y-m-d'),
'compare' => '>=', // Uniquement les événements à venir
'type' => 'DATE'
)
)
);
$query = new WP_Query($args);
if ( ! $query->have_posts() ) {
return '<p style="text-align:center; padding:20px;">Aucun événement prévu prochainement.</p>';
}
ob_start(); ?>
<div class="home-agenda-section">
<div class="agenda-intro-card">
<div class="intro-content">
<h2 class="intro-title">Agenda</h2>
<p class="intro-text">Découvrez les dernières nouvelles et événements marquants de Saint-Gilles-Les-Bains.</p>
</div>
<div class="agenda-slider-nav">
<div class="swiper-button-prev-custom">←</div>
<div class="swiper-button-next-custom">→</div>
</div>
</div>
<div class="agenda-slider-wrapper swiper-container-sglb">
<div class="swiper-wrapper">
<?php while ( $query->have_posts() ) : $query->the_post();
$p_id = get_the_ID();
// Récupération des données
$date_raw = get_post_meta($p_id, '_sglb_event_date_start', true);
$time = get_post_meta($p_id, '_sglb_event_time_start', true);
$linked = get_post_meta($p_id, '_sglb_event_linked_listing', true);
$location = $linked ? get_the_title($linked) : 'Lieu à venir';
// Formatage de la date (ex: 20 FÉVRIER)
$date_formated = date_i18n('j F', strtotime($date_raw));
?>
<div class="swiper-slide">
<article class="sglb-event-card">
<a href="<?php the_permalink(); ?>">
<div class="card-image">
<?php if ( has_post_thumbnail() ) : the_post_thumbnail('medium_large'); endif; ?>
<span class="card-badge">Évènement</span>
</div>
<div class="card-content">
<h3 class="card-title"><?php the_title(); ?></h3>
<div class="card-time-row">
<span class="card-date"><?php echo esc_html($date_formated); ?></span>
<span class="card-hours"><?php echo esc_html($time); ?></span>
</div>
<p class="card-location"><?php echo esc_html($location); ?></p>
</div>
</a>
</article>
</div>
<?php endwhile; wp_reset_postdata(); ?>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
var swiper = new Swiper('.swiper-container-sglb', {
slidesPerView: 1,
spaceBetween: 20,
navigation: {
nextEl: '.swiper-button-next-custom',
prevEl: '.swiper-button-prev-custom',
},
breakpoints: {
768: { slidesPerView: 2 },
1024: { slidesPerView: 3 }
}
});
});
</script>
<?php
return ob_get_clean();
});