J'essaie de créer un plugin et je suis coincé. J'essaie de m'inscrire et de mettre en file d'attente un script à partir d'un shortcode:
C'est mon shortcode:
add_shortcode( 'gear-guide', 'gg_product_front_end' );
C'est la fonction à laquelle il appelle:
function gg_product_front_end() {
echo '<p id="test">Test!</p>';
wp_register_script( 'gg_loadProducts_frontEnd', plugins_url( 'js/front_end.js', __FILE__ ), array( 'jquery' ));
wp_enqueue_script( 'gg_loadProducts_frontEnd' );
}
Et c'est le JavaScript:
function gg_loadProducts_frontEnd() {
console.log( 'Test!' );
}
JavaScript ne fonctionne pas, mais je ne reçois aucune erreur, ni php ni js.
Vous devez renvoyer la chaîne générée par Shortcode, et non pas echo
, comme ceci:
function gg_product_front_end() {
wp_register_script( 'gg_loadProducts_frontEnd', plugins_url( 'js/front_end.js', __FILE__ ), array( 'jquery' ));
wp_enqueue_script( 'gg_loadProducts_frontEnd' );
return '<p id="test">Test!</p>';
}
En outre, vous devez appeler la fonction JavaScript, comme ceci:
function gg_loadProducts_frontEnd() {
console.log( 'Test!' );
}
gg_loadProducts_frontEnd();
Sinon, Test!
ne sera pas enregistré dans la console du navigateur.
En outre, cochez This Post pour mettre en file d'attente les scripts/styles lorsque le shortcode est présent.