WordPress : Comment mettre en file d’attente les scripts et les styles uniquement lorsqu’ils sont nécessaires ?
J’ai créé une page basée sur ACF et la disposition des champs flexibles. Dans mon thème, j’ai des scripts JS comme la maçonnerie, fancybox, lazyload. Pour l’instant, j’utilise la norme wp_enqueue_style
dans function.php
le fichier. Existe-t-il un moyen intelligent de mettre les scripts en file d’attente uniquement si un certain bloc d’ACF est choisi, et une seule fois si ce bloc a été inséré plus tôt ?
Merci!
Solution n°1 trouvée
J’utilise ce qui suit pour mettre en file d’attente un script spécifique sur post.php
, qui est déclenché par le admin_enqueue_scripts
hook :
if ( in_array( get_current_screen()->base, [ 'post' ] ) ) {
// Load scripts only on the post edit page.
wp_enqueue_script( PLUGIN_NAME, PLUGIN_ROOT_URL . 'resources/js/script.js', [], PLUGIN_VERSION, false );
}
Au lieu de la vérification que je fais, vous pouvez récupérer le contenu du message et le scanner pour le bloc dont vous avez besoin. Ainsi:
if ( is_singular() ) {
$post = get_post();
if ( $post && has_blocks( $post ) ) {
$blocks = parse_blocks( $post->post_content );
$postContainsBlock = ... // Search $blocks array for the required block.
if ( $postContainsBlock ) {
wp_enqueue_script( PLUGIN_NAME, PLUGIN_ROOT_URL . 'resources/js/script.js', [], PLUGIN_VERSION, false );
}
}
}
Remarque : Je n’ai pas testé le code ci-dessus.
0 commentaire