admin_url( 'admin-ajax.php' ), 'nonce' => wp_create_nonce( 'load_more_posts' ), 'lang' => thalim_current_language(), ]); } if (is_front_page()) { wp_enqueue_script( 'coloredWordsHero', get_template_directory_uri() . '/js/coloredWordsHero.js', [], filemtime(get_template_directory() . '/js/coloredWordsHero.js'), true ); thalim_enqueue_swiper(); wp_enqueue_script( 'annoncesSwiper', get_template_directory_uri() . '/js/annoncesSwiper.js', ['swiper'], filemtime(get_template_directory() . '/js/annoncesSwiper.js'), true ); wp_enqueue_script( 'messageLabo', get_template_directory_uri() . '/js/messageLabo.js', [], filemtime(get_template_directory() . '/js/messageLabo.js'), true ); wp_enqueue_script( 'keywordCloud', get_template_directory_uri() . '/js/keywordCloud.js', [], filemtime(get_template_directory() . '/js/keywordCloud.js'), true ); wp_enqueue_script( 'quickLinks', get_template_directory_uri() . '/js/quickLinks.js', [], filemtime(get_template_directory() . '/js/quickLinks.js'), true ); $kw_tags = get_terms([ 'taxonomy' => 'post_tag', 'hide_empty' => true, 'orderby' => 'name', 'order' => 'ASC', ]); if (!is_wp_error($kw_tags) && !empty($kw_tags)) { $kw_lang = thalim_current_language(); $kw_tags = array_filter($kw_tags, function ($tag) { return !get_term_meta($tag->term_id, 'ne_pas_afficher_dans_le_nuage', true); }); wp_localize_script('keywordCloud', 'thalimTags', array_values(array_map(function ($tag) use ($kw_lang) { return ['name' => html_entity_decode(thalim_bilingual($tag->name, $kw_lang), ENT_QUOTES | ENT_HTML5, 'UTF-8'), 'url' => get_term_link($tag)]; }, $kw_tags))); } } wp_enqueue_script( 'navAxesToggle', get_template_directory_uri() . '/js/navAxesToggle.js', [], filemtime(get_template_directory() . '/js/navAxesToggle.js'), true ); wp_enqueue_script( 'stickyHeader', get_template_directory_uri() . '/js/stickyHeader.js', [], filemtime(get_template_directory() . '/js/stickyHeader.js'), true ); wp_enqueue_script( 'frenchTypography', get_template_directory_uri() . '/js/frenchTypography.js', [], filemtime(get_template_directory() . '/js/frenchTypography.js'), true ); if (is_page('membres')) { wp_enqueue_script( 'membresFilters', get_template_directory_uri() . '/js/membresFilters.js', [], filemtime(get_template_directory() . '/js/membresFilters.js'), true ); wp_enqueue_script( 'membresPopover', get_template_directory_uri() . '/js/membresPopover.js', [], filemtime(get_template_directory() . '/js/membresPopover.js'), true ); } if (is_single() || is_author() || is_page('membres') || is_page('le-laboratoire') || is_page('programmes-de-recherche')) { wp_enqueue_script( 'seanceToggle', get_template_directory_uri() . '/js/seanceToggle.js', [], filemtime(get_template_directory() . '/js/seanceToggle.js'), true ); } if (is_single()) { thalim_enqueue_swiper(); wp_enqueue_script( 'imageSwiper', get_template_directory_uri() . '/js/imageSwiper.js', ['swiper'], filemtime(get_template_directory() . '/js/imageSwiper.js'), true ); } wp_enqueue_script( 'fitPostCardTitle', get_template_directory_uri() . '/js/fitPostCardTitle.js', ['frenchTypography'], filemtime(get_template_directory() . '/js/fitPostCardTitle.js'), true ); $is_archive_page = is_category() || is_tax() || is_tag() || is_page(['annonces', 'announcements']) || is_search(); if ($is_archive_page) { wp_enqueue_script( 'infiniteScroll', get_template_directory_uri() . '/js/infiniteScroll.js', [], filemtime(get_template_directory() . '/js/infiniteScroll.js'), true ); wp_localize_script('infiniteScroll', 'infiniteScrollData', [ 'ajaxUrl' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('load_more_posts'), 'lang' => thalim_current_language(), ]); wp_enqueue_script( 'categoryFilters', get_template_directory_uri() . '/js/categoryFilters.js', [], filemtime(get_template_directory() . '/js/categoryFilters.js'), true ); } } add_action('wp_enqueue_scripts', 'theme_enqueue_assets'); /** * Scripts admin découpés par contexte de page (js/admin/*), enqueue * conditionnel par écran. admin-base.js fournit le namespace partagé * window.ThalimAdmin dont dépendent les autres. */ function enqueue_admin_js() { wp_enqueue_style( 'adminDashboardStyles', get_template_directory_uri() . '/css/admin.css', [], filemtime(get_template_directory() . '/css/admin.css') ); $base_uri = get_template_directory_uri() . '/js/admin'; $base_dir = get_template_directory() . '/js/admin'; $enqueue = function ( $handle, $file, $deps ) use ( $base_uri, $base_dir ) { wp_enqueue_script( $handle, "$base_uri/$file", $deps, filemtime( "$base_dir/$file" ), true ); }; // Toutes pages admin : socle partagé + rename « Article » → « Annonce » $enqueue( 'thalim-admin-base', 'admin-base.js', [ 'jquery' ] ); $enqueue( 'thalim-admin-rename', 'admin-rename.js', [ 'thalim-admin-base' ] ); $screen = get_current_screen(); if ( ! $screen ) { return; } // post.php / post-new.php (tous post types) if ( 'post' === $screen->base ) { $enqueue( 'thalim-admin-post-edit', 'admin-post-edit.js', [ 'jquery', 'thalim-admin-base' ] ); $axes_groups = thalim_get_axes_filter_groups(); if ( current_user_can( 'contributor' ) && ! current_user_can( 'edit_others_posts' ) ) { $axes_groups = array_slice( $axes_groups, 0, 1 ); } wp_localize_script( 'thalim-admin-post-edit', 'thalimAxesGroups', $axes_groups ); // Modale Pods de création de séance (iframe avec ?pods_modal) if ( isset( $_GET['pods_modal'] ) ) { $enqueue( 'thalim-admin-pods-modal', 'admin-pods-modal.js', [ 'jquery', 'thalim-admin-base' ] ); } } // profile.php / user-edit.php / user-new.php if ( in_array( $screen->base, [ 'profile', 'user-edit', 'user' ], true ) ) { $enqueue( 'thalim-admin-profile', 'admin-profile.js', [ 'jquery', 'thalim-admin-base' ] ); } // edit-tags.php / term.php if ( in_array( $screen->base, [ 'edit-tags', 'term' ], true ) ) { $enqueue( 'thalim-admin-taxonomy-list', 'admin-taxonomy-list.js', [ 'jquery', 'thalim-admin-base' ] ); } } add_action( 'admin_enqueue_scripts', 'enqueue_admin_js' );