我正在尝试创建一个插件,但我被卡住了。我正在尝试注册短代码中的脚本并将其排队:
这是我的短代码:
add_shortcode( \'gear-guide\', \'gg_product_front_end\' );
这是它调用的函数:
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\' );
}
这是JavaScript:
function gg_loadProducts_frontEnd() {
console.log( \'Test!\' );
}
JavaScript不工作,但我没有收到任何错误,无论是php还是js。
最合适的回答,由SO网友:Fayaz 整理而成
您需要返回快捷码生成的字符串,而不是echo
, 像这样:
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>\';
}
此外,还需要调用JavaScript函数,如下所示:
function gg_loadProducts_frontEnd() {
console.log( \'Test!\' );
}
gg_loadProducts_frontEnd();
否则
Test!
不会登录到浏览器控制台。
同时,检查This Post 当存在短代码时,将脚本/样式排队。