attendi

<?php

// Creiamo lo shortcode [wpc_gallery]
add_shortcode('wpc_gallery', 'crea_galleria_wpc');
function crea_galleria_wpc() {
    ob_start();
    ?>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/glightbox/dist/css/glightbox.min.css" />
    <style>
        .wpc-gallery {
            column-count: 3;
            column-gap: 15px;
            max-width: 1200px;
            margin: 0 auto;
            padding: 20px 0;
        }
        .wpc-gallery-item {
            break-inside: avoid;
            margin-bottom: 15px;
            border-radius: 8px;
            overflow: hidden;
            display: block;
            box-shadow: 0 4px 6px rgba(0,0,0,0.1);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .wpc-gallery-item img {
            width: 100%;
            height: auto;
            display: block;
            transition: transform 0.5s ease;
        }
        @media (hover: hover) {
            .wpc-gallery-item:hover {
                transform: translateY(-5px);
                box-shadow: 0 8px 15px rgba(0,0,0,0.2);
            }
            .wpc-gallery-item:hover img {
                transform: scale(1.05);
            }
        }
        @media (max-width: 900px) {
            .wpc-gallery { column-count: 2; }
        }
        @media (max-width: 600px) {
            .wpc-gallery { column-count: 1; }
        }
    </style>
    <div class="wpc-gallery">
        <?php
        // 2. Logica PHP per WordPress (PERCORSI CORRETTI)
        
        // Percorso fisico sul server (senza "uploads")
        $server_path = ABSPATH . 'wp-content/wpc-gallery/'; 
        
        // Percorso URL pubblico per le immagini (senza "uploads")
        $public_url = site_url('/wp-content/wpc-gallery/');
        // Cerca le immagini nel server
        $images = glob($server_path . "*.{jpg,jpeg,png,webp}", GLOB_BRACE);
        if ($images) {
            foreach ($images as $image_path) {
                $fileInfo = pathinfo($image_path);
                
                // Nome pulito per l'attributo ALT
                $filename = $fileInfo['filename'];
                $cleanName = str_replace('-', ' ', $filename);
                $altText = ucfirst($cleanName);
                // Costruisci l'URL pubblico dell'immagine
                $image_url = $public_url . $fileInfo['basename'];
                // Stampa l'HTML usando le funzioni di sicurezza di WordPress
                echo '
                <a href="' . esc_url($image_url) . '" class="glightbox wpc-gallery-item" data-gallery="wpc" data-title="' . esc_attr($altText) . '">
                    <img src="' . esc_url($image_url) . '" alt="' . esc_attr($altText) . '" loading="lazy">
                </a>';
            }
        } else {
            // Messaggio di debug aggiornato per confermare dove sta cercando
            echo '<p>Nessuna immagine trovata nella cartella: ' . esc_html($server_path) . '</p>';
        }
        ?>
    </div>
    <script src="https://cdn.jsdelivr.net/gh/mcstudios/glightbox/dist/js/glightbox.min.js"></script>
    <script>
        document.addEventListener("DOMContentLoaded", function() {
            if(typeof GLightbox !== 'undefined') {
                const lightbox = GLightbox({
                    selector: '.glightbox',
                    touchNavigation: true,
                    loop: true,
                    zoomable: true
                });
            }
        });
    </script>
    <?php
    return ob_get_clean();
}