Il s’agit d’une liste de fonctions WordPress utiles auxquelles je fais souvent référence pour améliorer ou nettoyer mes sites. Soyez prudent et faites des sauvegardes.
Masquer la mise à jour WordPress à tous sauf les administrateurs
Utiliser les titres WordPress appropriés
Créer un widget de tableau de bord WordPress personnalisé
Supprimer tous les widgets du tableau de bord
Inclure les menus de navigation
Insérer un logo de connexion personnalisé
Modifier le texte du pied de page d'administration
Styles et scripts de mise en file d'attente
Mettre les polices Google en file d'attente
Modifier la longueur de l'extrait
Modifier le lien Lire la suite
Modifier plus d'extrait
Désactiver le désordre Emoji
Supprimer les commentaires
Modifier l'URL de la galerie multimédia
Créer une taille de vignette personnalisée
Ajouter des catégories pour les pièces jointes
Ajouter des balises pour les pièces jointes
Ajouter un extrait personnalisé aux pages
Créer une chaîne globale
Images en vedette
Formulaire de recherche d'assistance
Exclusion de pages de la recherche
Désactiver XMLRPC
Échapper au HTML dans les publications
Créer des paramètres globaux personnalisés
Supprimer la barre d'administration WordPress
Ajouter des balises méta Open Graph
Ajouter un type de publication personnalisé
Implémenter la préconnexion aux polices Google dans les thèmes
Ajouter une colonne de vignettes à la liste des publications
Ajouter une classe de prospects au premier paragraphe
Exclure le type de publication personnalisé de la recherche
Supprimer la chaîne de requête des ressources statiques
Désactiver le champ du site Web du formulaire de commentaires
Modifier jQuery
Désactiver l'API Rest JSON
Type de poste de commutation
Enregistreur PHP
Toujours afficher la deuxième barre dans TinyMCE
Supprimer les éléments du menu administrateur en fonction du rôle de l'utilisateur
Supprimer les éléments du menu administrateur en fonction de l'adresse e-mail (domaine)
Réorganiser les éléments du menu administrateur
Exclure une catégorie des boucles WordPress
Désactivez le message « JQMIGRATE : Migrate est installé, version 1.4.1 »
Chargez des scripts tiers lourds plus tard pour de meilleures performances
/** * Masquer le problème de mise à jour de WordPress à tous sauf aux administrateurs */ function hide_update_notice_to_all_but_admin() { if ( !current_user_can( 'update_core' ) ) { remove_action( 'admin_notices', 'update_nag', 3 ); } }add_action( 'admin_head', 'hide_update_notice_to_all_but_admin', 1 );
Assurez-vous de supprimer la balise <title>
de votre en-tête.
/** * Utiliser les titres WordPress appropriés */add_theme_support( 'title-tag' );
/** * Créez un widget de tableau de bord WordPress personnalisé */ function Dashboard_widget_function() { echo ' <h2>Widget de tableau de bord personnalisé</h2> <p>Contenu personnalisé ici</p> '; }function add_dashboard_widgets() { wp_add_dashboard_widget( 'custom_dashboard_widget', 'Widget de tableau de bord personnalisé', 'dashboard_widget_function' ); }add_action( 'wp_dashboard_setup', 'add_dashboard_widgets' );
/** * Supprime tous les widgets du tableau de bord */ function remove_dashboard_widgets() { global $wp_meta_boxes; unset( $wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press'] ); unset( $wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links'] ); unset( $wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now'] ); unset( $wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins'] ); unset( $wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_drafts'] ); unset( $wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments'] ); unset( $wp_meta_boxes['dashboard']['side']['core']['dashboard_primary'] ); unset( $wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary'] ); Remove_meta_box( 'dashboard_activity', 'dashboard', 'normal' ); }add_action( 'wp_dashboard_setup', 'remove_dashboard_widgets' );
/** * Inclure les menus de navigation */function register_my_menu() { register_nav_menu( 'nav-menu', __( 'Navigation Menu' ) ); }add_action( 'init', 'register_my_menu' );
Insérez-le là où vous souhaitez qu'il apparaisse et enregistrez le menu dans Appearance -> Menus .
wp_nav_menu( array( 'theme_location' => 'nav-menu' ) );
Voici le code pour plusieurs menus :
function register_my_menus() { register_nav_menus( array( 'new-menu' => __( 'Nouveau menu' ), 'un autre-menu' => __( 'Un autre menu' ), 'un-menu-extra' => __( « Un menu supplémentaire » ), ) ); }add_action( 'init', 'register_my_menus' );
/** * Insérer un logo de connexion personnalisé */ function custom_login_logo() { echo ' <style> .login h1 a { background-image: url(image.jpg) !important; taille de l'arrière-plan : 234 px 67 px ; largeur : 234 px ; hauteur : 67 px ; affichage:bloc; } </style> '; }add_action( 'login_head', 'custom_login_logo' );
/** * Modifier le texte du pied de page de l'administrateur */ function modifier_footer() { echo 'Créé par <a href="mailto:[email protected]">vous</a>.'; }add_filter( 'admin_footer_text', 'modify_footer' );
/** * Mettre en file d'attente les styles et les scripts */ function custom_scripts() { wp_enqueue_style( 'bootstrap', get_template_directory_uri() . '/css/bootstrap.min.css', array(), '3.3.6' ); wp_enqueue_style( 'style', get_template_directory_uri() . '/css/style.css' ); wp_enqueue_script( 'bootstrap', get_template_directory_uri() . '/js/bootstrap.min.js', array('jquery'), '3.3.6', true ); wp_enqueue_script( 'script', get_template_directory_uri() . '/js/script.js' ); }add_action( 'wp_enqueue_scripts', 'custom_scripts' );
/** * Mettre les polices Google en file d'attente */ function google_fonts() { wp_register_style( 'OpenSans', '//fonts.googleapis.com/css?family=Open+Sans:400,600,700,800' ); wp_enqueue_style( 'OpenSans' ); }add_action( 'wp_print_styles', 'google_fonts' );
/** * Modifier la longueur de l'extrait */ function custom_excerpt_length( $length ) { return 25; }add_filter( 'extrait_length', 'custom_excerpt_length', 999 );
/** * Modifier le lien Lire la suite */ function custom_read_more_link() { return '<a href="' . get_permalink() . '">Lire la suite</a>'; }add_filter( 'the_content_more_link', 'custom_read_more_link' );
/** * Modifier Plus d'extrait */ function custom_more_excerpt( $more ) { return '...'; }add_filter( 'extrait_more', 'custom_more_excerpt' );
/** * Désactiver le désordre Emoji */ function Disable_wp_emojicons() { Remove_action( 'admin_print_styles', 'print_emoji_styles' ); remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); remove_action( 'wp_print_styles', 'print_emoji_styles' ); remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' ); remove_filter( 'the_content_feed', 'wp_staticize_emoji' ); remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); add_filter( 'tiny_mce_plugins', 'disable_emojicons_tinymce' ); add_filter( 'emoji_svg_url', '__return_false' ); }add_action( 'init', 'disable_wp_emojicons' );function Disable_emojicons_tinymce( $plugins ) { return is_array( $plugins ) ? array_diff( $plugins, array( 'wpemoji' ) ) : array(); }
/** * Supprimer les commentaires */ // Supprime la fonction du menu d'administration my_remove_admin_menus() { remove_menu_page( 'edit-comments.php' ); }add_action( 'admin_menu', 'my_remove_admin_menus' );// Supprime de la publication et des pagesfunction Remove_comment_support() { Remove_post_type_support( 'post', 'comments' ); Remove_post_type_support( 'page', 'commentaires' ); }add_action( 'init', 'remove_comment_support', 100 );// Supprime de la fonction de la barre d'administration mytheme_admin_bar_render() { global $wp_admin_bar; $wp_admin_bar->remove_menu( 'comments' ); }add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );
/** * Modifier l'URL de la galerie multimédia */ if ( empty( get_option( 'upload_url_path' ) ) ) { update_option( 'upload_url_path', 'http://assets.website.com/wp-content/uploads' ); }
En outre, vous pouvez filtrer la valeur de l'option avant qu'elle ne soit récupérée de la base de données, ce qui est légèrement mieux :
/** * Modifier l'URL de la galerie multimédia */ add_filter( 'pre_option_upload_url_path', function() { return 'http://assets.website.com/wp-content/uploads'; });
/** * Créer une taille de vignette personnalisée */ add_image_size( 'custom-thumbnail', 250, 250, true );
Récupérer la vignette
$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'custom-thumbnail' );echo $thumb[0];
Depuis WordPress 4.4.0, vous pouvez utiliser :
the_post_thumbnail_url( $size );
/** * Ajouter des catégories pour les pièces jointes */ function add_categories_for_attachments() { register_taxonomy_for_object_type( 'category', 'attachment' ); }add_action( 'init' , 'add_categories_for_attachments' );
/** * Ajouter des balises pour les pièces jointes */ function add_tags_for_attachments() { register_taxonomy_for_object_type( 'post_tag', 'attachment' ); }add_action( 'init' , 'add_tags_for_attachments' );
/** * Ajouter un extrait personnalisé aux pages */ function add_page_excerpt() { add_post_type_support( 'page', array( 'excerpt' ) ); }add_action( 'init', 'add_page_excerpt' );
/** * Crée une chaîne globale */ function global_string() { return 'String'; }
Récupérer le champ
echo global_string();
/** * Prise en charge des images sélectionnées */ add_theme_support( 'post-thumbnails' );
/** * Prise en charge du formulaire de recherche */ add_theme_support( 'html5', array( 'search-form' ) );
/** * Exclusion de pages de la recherche */ function include_pages_from_search() { global $wp_post_types; $wp_post_types['page']->exclude_from_search = true ; }add_action( 'init', 'exclude_pages_from_search' );
/** * Désactiver xmlrpc.php */ add_filter( 'xmlrpc_enabled', '__return_false' );remove_action( 'wp_head', 'rsd_link' );remove_action( 'wp_head', 'wlwmanifest_link' );
/** * Échappez le HTML dans les balises <code> ou <pre><code>. */ function escapeHTML($arr) { if (version_compare(PHP_VERSION, '5.2.3') >= 0) { $output = htmlspecialchars($arr[2], ENT_NOQUOTES, get_bloginfo('charset'), false); } else { $specialChars = array( '&' => '&', '<' => '<', '>' => '>' ); // décode les données déjà converties $data = htmlspecialchars_decode( $arr[2] ); // échappe à toutes les données contenues dans <pre> $output = strtr( $data, $specialChars ); } if (! empty ($output)) { return $arr[1] . $sortie . $arr[3]; } else { return $arr[1] . $arr[2] . $arr[3]; } }function filterCode($data) { // Décommentez si vous souhaitez échapper quoi que ce soit dans une balise <pre> //$modifiedData = preg_replace_callback( '@(<pre.*>)(.*)(</pre>) @isU', 'escapeHTML', $data ); $modifiedData = preg_replace_callback( '@(<code.*>)(.*)(</code>)@isU', 'escapeHTML', $data ); $modifiedData = preg_replace_callback( '@(<tt.*>)(.*)(</tt>)@isU', 'escapeHTML', $modifiedData ); renvoie $modifiedData ; }add_filter( 'content_save_pre', 'filterCode', 9 );add_filter( 'excerpt_save_pre', 'filterCode', 9 );
Modifié depuis Escape HTML.
/** * Créer des paramètres globaux personnalisés */ function custom_settings_page() { ?> <div class="wrap"> <h1>Paramètres personnalisés</h1> <form method="post" action="options.php"> <?php settings_fields( 'section' ); do_settings_sections( 'thème-options' ); soumettre_bouton(); ?> </form> </div><?php }function custom_settings_add_menu() { add_theme_page( 'Paramètres personnalisés', 'Paramètres personnalisés', 'manage_options', 'custom-settings', 'custom_settings_page', null, 99 ); }add_action( 'admin_menu', 'custom_settings_add_menu' );// Exemple de fonction de réglage settings_twitter() { ?> <input type="text" name="twitter" id="twitter" value="<?php echo get_option('twitter'); ?>" /><?php }function custom_settings_page_setup() { add_settings_section( 'section' , 'Tous les paramètres', null, 'thème-options' ); add_settings_field( 'twitter', 'Nom d'utilisateur Twitter', 'setting_twitter', 'theme-options', 'section' ); register_setting( 'section', 'twitter' ); }add_action( 'admin_init', 'custom_settings_page_setup' );
Récupérer le champ
echo get_option( 'twitter' );
Modifié à partir de Créer une page de paramètres de thème WordPress avec l'API Paramètres.
/** * Supprimer la barre d'administration WordPress */function Remove_admin_bar() { Remove_action( 'wp_head', '_admin_bar_bump_cb' ); }add_action( 'get_header', 'remove_admin_bar' );
/** * Ajouter des balises méta Open Graph */function meta_og() { global $post; if ( is_single() ) { if( has_post_thumbnail( $post->ID ) ) { $img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'thumbnail' ); } $extrait = strip_tags( $post->post_content ); $extrait_more = ''; if ( strlen($extrait) > 155) { $extrait = substr( $extrait,0,155 ); $extrait_more = '...'; } $extrait = str_replace( '"', '', $extrait ); $extrait = str_replace( "'", '', $extrait ); $extraitwords = preg_split( '/[nrt ]+/ ', $extrait, -1, PREG_SPLIT_NO_EMPTY ); array_pop( $extraitwords ); implode( ' ', $excerptwords ) . $excerpt_more ?><meta name="author" content="Votre nom">. <meta name="description" content="<?php echo $excerpt; ?>"> <meta property="og:title" content="<?php echo the_title(); ?>"> <meta property="og:description" content="<?php echo $excerpt; ?>"> <meta property="og:type" content="article"> <meta property="og:url" content="<?php echo the_permalink(); ?>"> <meta property="og:site_name" content="Votre nom de site"> <meta property="og:image" content="<?php echo $img_src[0]; ?>"><?php } autre { retourner ; } }add_action('wp_head', 'meta_og', 5);
/** * Ajouter un type de publication personnalisé */function create_custom_post() { register_post_type( 'custom-post', // slug pour le type de publication personnalisé array( 'labels' => array( 'name' => __( 'Custom Post' ), ), 'public' => vrai, 'hiérarchique' => vrai, 'has_archive' => true, 'supports' => array( 'titre', 'éditeur', 'extrait', 'vignette' ), 'can_export' => true, 'taxonomies' => array( 'post_tag', 'category' ) )); }add_action('init', 'create_custom_post');
/** * Implémente la préconnexion aux polices Google dans les thèmes */function vingtfifteen_resource_hints( $urls, $relation_type ) { // Vérifie si le sujet porte la source des polices Google et si le `$relation_type` est égal à la préconnexion. // Remplacez `enqueue_font_id` par l'`ID` utilisé lors du chargement de la source. if ( wp_style_is( 'enqueue_font_id', 'queue' ) && 'preconnect' === $relation_type ) { // Vérifie si la version de WordPress est supérieure ou égale à 4.7 // pour assurer la compatibilité avec les anciennes versions // car le 4.7 est devenu nécessaire de renvoyer un tableau au lieu d'une chaîne if ( version_compare( $GLOBALS['wp_version'], '4.7-alpha', '>=' ) ) { // Tableau avec l'URL des polices Google et crossorigin $urls[] = array( 'href' => 'https://fonts.gstatic.com', 'crossorigin', ); } else { // Chaîne avec l'URL des polices Google $urls[] = 'https://fonts.gstatic.com'; } } renvoie $urls ; }add_filter( 'wp_resource_hints', 'twentyfifteen_resource_hints', 10, 2 );
/** * Ajouter une colonne de vignettes à la liste des publications */add_image_size( 'admin-list-thumb', 80, 80, false );function wpcs_add_thumbnail_columns( $columns ) { if ( !is_array( $columns ) ) $columns = array(); $nouveau = tableau(); foreach( $columns as $key => $title ) { if ( $key == 'title' ) // Place la colonne Miniature avant la colonne Titre $new['featured_thumb'] = __( 'Image'); $nouveau[$clé] = $titre ; } renvoie $nouveau; }function wpcs_add_thumbnail_columns_data( $column, $post_id ) { switch ( $column ) { case 'featured_thumb': echo '<a href="' . $post_id . '">'; echo the_post_thumbnail( 'admin-list-thumb' ); écho '</a>'; casser; } }if ( function_exists( 'add_theme_support' ) ) { add_filter( 'manage_posts_columns' , 'wpcs_add_thumbnail_columns' ); add_action( 'manage_posts_custom_column' , 'wpcs_add_thumbnail_columns_data', 10, 2 ); }
/** * Ajouter une classe principale au premier paragraphe */function first_paragraph( $content ) { return preg_replace( '/<p([^>]+)?>/', '<p$1 class="lead">', $contenu, 1 ); }add_filter( 'the_content', 'first_paragraph' );
Ajoute une classe lead
au premier paragraphe de the_content.
/** * Exclure le type de publication personnalisé de la recherche */function ExclurePages( $query ) {if ( $query->is_search ) { $query->set( 'post_type', 'post' ); } renvoie $requête ; }add_filter( 'pre_get_posts','excludePages' );
/** * Supprimer la chaîne de requête des ressources statiques */ function Remove_cssjs_ver( $src ) { if ( strpos( $src, '?ver=' ) ) $src = Remove_query_arg( 'ver', $src ); retourner $src ; }add_filter( 'style_loader_src', 'remove_cssjs_ver', 10, 2 );add_filter( 'script_loader_src', 'remove_cssjs_ver', 10, 2 );
/** * Modifier jQuery */function modifier_jquery() { wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js', false, '3.2.1' ); wp_enqueue_script( 'jquery' ); }if (!is_admin()) add_action('wp_enqueue_scripts', 'modify_jquery');
/** * Désactiver le champ du site Web à partir du formulaire de commentaire */function Disable_website_field( $field ) { si( isset($field['url']) ) { unset( $field['url'] ); } renvoie $champ ; }add_filter('comment_form_default_fields', 'disable_website_field');
/** * Désactiver l'API REST JSON */add_filter('json_enabled', '__return_false');add_filter('json_jsonp_enabled', '__return_false');
/** * Changer de type de publication */function switch_post_type ( $old_post_type, $new_post_type ) { global $wpdb; // Exécutez la requête de mise à jour $wpdb->update( $wpdb->posts, // Set array( 'post_type' => $new_post_type), // Where array( 'post_type' => $old_post_type ) ); }
/** * PHP Logger */function php_logger( $data ) { $output = $data; if ( is_array( $output ) ) $output = imploser( ',', $output ); // affiche le résultat dans la console JavaScript echo "<script>console.log( 'PHP LOG: " . $output . "' );</script>"; }
/** * Toujours afficher la deuxième barre dans TinyMCE */function show_tinymce_toolbar( $in ) { $in['wordpress_adv_hidden'] = false; retourner $in ; }add_filter( 'tiny_mce_before_init', 'show_tinymce_toolbar' );
/** * Cloner le rôle d'utilisateur administrateur */function clone_admin_role() { global $wp_roles; if ( ! isset( $wp_roles ) ) $wp_roles = new WP_Roles(); $adm = $wp_roles->get_role( 'administrateur' ); // Ajout d'un nouveau rôle "Client" avec toutes les capacités d'administration $wp_roles->add_role( 'client', 'Client', $adm->capabilities ); }add_action( 'init', 'clone_admin_role' );/** * Spécifiez quels éléments du menu d'administration sont visibles pour les utilisateurs avec le rôle "Client" */function remove_dashboard_menus() { if ( current_user_can( 'client' ) ) { // Masquer Mises à jour dans le menu Tableau de bord remove_submenu_page( 'index.php', 'update-core.php' ); // Masquer les commentaires remove_menu_page( 'edit-comments.php' ); // Masquer les plugins remove_menu_page( 'plugins.php' ); // Masquer les thèmes, le personnalisateur et les widgets sous le menu Apparence remove_submenu_page( 'themes.php', 'themes.php' ); remove_submenu_page( 'themes.php', 'customize.php?return=' . urlencode( $_SERVER['REQUEST_URI'] ) ); Remove_submenu_page( 'themes.php', 'widgets.php' ); // Masquer les outils remove_menu_page( 'tools.php' ); // Masquer les paramètres généraux remove_menu_page( 'options-general.php' ); } }add_action( 'admin_menu', 'remove_dashboard_menus' );
/** * Spécifiez quels utilisateurs peuvent voir les éléments du menu d'administration en fonction de leur adresse e-mail */function remove_dashboard_menus() { $user_data = get_userdata( get_current_user_id() ); $user_email = isset( $user_data->user_email ) ? $user_data->user_email : ''; if ( ! strpos( $user_email, '@yourcompany.com' ) ) { // Masquer les mises à jour dans le menu du tableau de bord remove_submenu_page( 'index.php', 'update-core.php' ); // Masquer les commentaires remove_menu_page( 'edit-comments.php' ); // Masquer les plugins remove_menu_page( 'plugins.php' ); // Masquer les thèmes, le personnalisateur et les widgets sous le menu Apparence remove_submenu_page( 'themes.php', 'themes.php' ); remove_submenu_page( 'themes.php', 'customize.php?return=' . urlencode( $_SERVER['REQUEST_URI'] ) ); Remove_submenu_page( 'themes.php', 'widgets.php' ); // Masquer les outils remove_menu_page( 'tools.php' ); // Masquer les paramètres généraux remove_menu_page( 'options-general.php' ); } }add_action( 'admin_menu', 'remove_dashboard_menus' );
/** * Réorganiser le menu d'administration */function custom_menu_order( $menu_ord ) { if ( ! $menu_ord ) { return true; } return array( 'index.php', 'separator1', 'edit.php?post_type=page', 'edit.php', 'edit.php?post_type=[your_post_type_slug]', 'upload.php', 'edit-comments.php', 'separator2', 'themes.php', 'plugins.php', 'users.php', 'tools .php', 'options-générales.php' ); } }add_filter( 'custom_menu_order', 'custom_menu_order' );add_filter( 'menu_order', 'custom_menu_order' );
/** * Exclure une catégorie de toutes les boucles WordPress */add_action( 'pre_get_posts', function( $query ) { // rappel anonyme global $wp_query ; // ID de catégorie codé en dur, mais peut être dynamique : esc_attr(get_option('your-cat-id')); $exclus_cat_id = 25 ; // ajoute l'ID de catégorie à l'existant, évite de l'écraser $cat[] = $query->get( 'cat' ); $cat[] = "-" . $exclus_cat_id; $query->set( 'chat', $cat ); } });
add_action('wp_default_scripts', function ($scripts) { if (!empty($scripts->registered['jquery'])) { $scripts->registered['jquery']->deps = array_diff($scripts-> enregistré['jquery']->deps, ['jquery-migrate']); } });
Lighthouse et les outils d'analyse des performances similaires se plaignent toujours des scripts (et styles) bloquant le rendu, du TTL du cache court, etc. La plupart de ces scripts et styles proviennent de sources tierces que nous ne pouvons pas contrôler – le gestionnaire de balises et Analytics de Google, Facebook Pixel, autres trackers et scripts de chat, etc. Cependant, nous pouvons les charger uniquement lorsqu'un utilisateur réel interagit avec une page, ce qui réduit considérablement la métrique Time To Interactive et obtient des résultats de performances beaucoup plus élevés.
Selon l'endroit où vous souhaitez que ces scripts tiers se trouvent, vous pouvez soit utiliser l'action wp_footer
pour imprimer le code dans le pied de page, soit le placer dans votre script app.js
principal qui, à son tour, est mis en file d'attente sur l'action wp_enqueue_scripts
.
<script>var tiré = false; window.addEventListener('scroll', () => { if (fired === false) { Fired = true; setTimeout(() => { // Les scripts marketing vont ici. }, 1000) // 1000 ms ou 1 s fonctionnent bien, mais vous pouvez ajuster ce délai d'attente. }});</script>