'GET', 'callback' => 'load_custom_template', 'permission_callback' => '__return_true', // Autorise l'accès à tous les utilisateurs ]); register_rest_route('htmx/v1', '/past-events', [ 'methods' => 'GET', 'callback' => 'load_custom_template_past_events', 'permission_callback' => '__return_true', // Autorise l'accès à tous les utilisateurs ]); }); function load_custom_template($request) { // Nom du fichier de template à inclure (ex. : 'custom-template.php' dans votre thème) $template = locate_template('htmx/events-home.php'); if ($template) { // Capture la sortie du template pour l'inclure dans la réponse ob_start(); include $template; $content = ob_get_clean(); header('Content-Type: text/html; charset=UTF-8'); echo $content; exit; // Important pour éviter que WordPress ajoute des données JSON supplémentaires } // Retourne une erreur si le fichier template est introuvable header('Content-Type: text/html; charset=UTF-8', true, 404); echo 'Template introuvable.'; exit; } function load_custom_template_past_events($request) { // Nom du fichier de template à inclure (ex. : 'custom-template.php' dans votre thème) $template = locate_template('htmx/past-events.php'); if ($template) { // Capture la sortie du template pour l'inclure dans la réponse ob_start(); include $template; $content = ob_get_clean(); header('Content-Type: text/html; charset=UTF-8'); echo $content; exit; // Important pour éviter que WordPress ajoute des données JSON supplémentaires } // Retourne une erreur si le fichier template est introuvable header('Content-Type: text/html; charset=UTF-8', true, 404); echo 'Template introuvable.'; exit; } // ENQUEUE HTMX add_action('wp_enqueue_scripts', 'add_scripts'); function add_scripts(){ wp_register_script( 'htmx', 'https://unpkg.com/htmx.org@2.0.3', false, null, true); if(is_front_page() || is_page_template('template-passes.php')): wp_enqueue_script( 'htmx' ); endif; }