ceinture-culturelle/includes/api.php
2025-01-10 15:06:39 +01:00

66 lines
2.3 KiB
PHP

<?php
// AJOUT ROUTE POUR HTMX
add_action('rest_api_init', function () {
register_rest_route('htmx/v1', '/events-home', [
'methods' => '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;
}