$w; } /** * Resolve all Pods custom fields for a single post into a display-ready array. */ function thalim_get_single_data($post_id) { $lang = thalim_current_language(); $data = [ // Text fields 'sous_titre' => thalim_bilingual( get_post_meta($post_id, 'sous-titre', true) ?: '', $lang ), // wp_kses_post: rendus en |raw dans single.twig (autoescape off) et // éditables par les contributeurs listés en membres → filtrer le HTML. 'reference_bibliographique' => wp_kses_post( get_post_meta($post_id, 'reference_bibliographique', true) ?: '' ), 'editeur' => get_post_meta($post_id, 'editeur', true) ?: '', 'journal' => get_post_meta($post_id, 'journal', true) ?: '', 'lieu' => thalim_bilingual( get_post_meta($post_id, 'lieu', true) ?: '', $lang ), 'adresse' => nl2br( esc_html( get_post_meta($post_id, 'adresse', true) ?: '' ) ), 'autrepersonnes' => get_post_meta($post_id, 'autrepersonnes', true) ?: '', 'autre_autrepersonnes' => get_post_meta($post_id, 'autre_autrepersonnes', true) ?: '', 'body_en' => apply_filters( 'the_content', wp_kses_post( get_post_meta($post_id, 'body_en', true) ?: '' ) ), // Dates (formatted for display) 'datetime' => thalim_format_date(get_post_meta($post_id, 'datetime', true), $lang), 'date_de_debut' => '', 'date_de_fin' => '', 'date_debut_ymd' => '', 'date_fin_ymd' => '', 'heure_de_debut' => substr( get_post_meta($post_id, 'heure_de_debut', true) ?: '', 0, 5 ), 'heure_de_fin' => substr( get_post_meta($post_id, 'heure_de_fin', true) ?: '', 0, 5 ), // URLs 'hal_url' => get_post_meta($post_id, 'hal_url', true) ?: '', 'hal_file' => get_post_meta($post_id, 'hal_file', true) ?: '', 'canal_u' => array_values( array_filter( array_map( function( $url ) { if ( preg_match( '/(\d+)\/?$/', trim( $url ), $m ) ) { return 'https://www.canal-u.tv/embed/' . $m[1] . '?t=0'; } return ''; }, get_post_meta( $post_id, 'lien_canal_u', false ) ) ) ), 'youtube' => array_values( array_filter( array_map( function( $url ) { $url = trim( $url ); // youtu.be/ID or youtube.com/embed/ID or youtube.com/watch?v=ID if ( preg_match( '/(?:youtu\.be\/|youtube\.com\/(?:embed\/|watch\?.*v=|shorts\/))([A-Za-z0-9_-]{11})/', $url, $m ) ) { return 'https://www.youtube-nocookie.com/embed/' . $m[1]; } return ''; }, get_post_meta( $post_id, 'lien_youtube', false ) ) ) ), // Resolved below 'liens_externes' => [], 'membres' => [], 'autre_membres' => [], 'autre_fonction_label' => '', 'axes' => [], 'etiquettes' => [], 'programmes' => [], 'annonces_liees' => [], 'seances_a_venir' => [], 'seances_passees' => [], 'show_image_titles' => (bool) get_post_meta($post_id, 'afficher_le_titre_des_images_en_legende', true), 'images' => [], 'documents' => [], 'type_label' => '', 'fonction_label' => '', 'parent_slug' => '', 'parent_name' => '', 'parent_link' => '', 'category_name' => '', 'category_link' => '', 'is_newsletter' => false, 'newsletter_html' => '', ]; // Newsletters archivées (cat « newsletter ») : le post_content est un // document HTML email complet (table 600px +