J'écris un plugin qui définit ses propres "propriétés" CPT et je veux mettre en file d'attente un script spécifiquement dans les posts individuels.
Il fonctionne sans ma tentative de déclaration conditionnelle, mais je n'ai pas besoin de le charger sur chaque page et j'aimerais donc que cela soit conditionnel.
Ce code est dans la racine de mon plugin juste après mon includes.
if ( 'properties' == get_post_type() ) {
if (wp_script_is('owl.carousel.js', 'enqueued')) {
return;
} else {
wp_register_script('owl.carousel.min.js', plugin_dir_url(__FILE__) . 'js/owl.carousel.min.js');
wp_enqueue_script('owl.carousel.min.js');
}
}
J'ai aussi essayé is_sigular('properties')
mais cela n'a pas fonctionné non plus.
Je dois manquer quelque chose de stupide ...
Assurez-vous que votre code s'exécute dans wp_enqueue_scripts
action hook.
Consultez également votre pseudo de script 'owl.carousel.js'
. Dans wp_script_is()
, ce n'est pas la même chose que dans les 2 dernières fonctions dans lesquelles vous l'avez entré comme 'owl.carousel.min.js'
.
add_action( 'wp_enqueue_scripts', 'enqueue_properties_scripts' );
function enqueue_properties_scripts() {
if ( 'properties' === get_post_type() ) {
if ( wp_script_is( 'owl.carousel.min.js', 'enqueued' ) ) {
return;
} else {
wp_register_script( 'owl.carousel.min.js', plugin_dir_url( __FILE__ ) . 'js/owl.carousel.min.js' );
wp_enqueue_script( 'owl.carousel.min.js' );
}
}
}