WP_ENQUEUE_SCRIPT是否包含在短码中?

时间:2012-11-14 作者:Paul

我有一个短代码,只需要包含一次JS库,并且只在使用它的地方。

function shortcode_function($atts, $content = null) {
    $class = shortcode_atts( array(\'something\' => \'0\'), $atts );

    return "<script src=\\"http://maps.googleapis.com/maps/api/js?sensor=false\\"></script> 
            And here goes HTML code for the map.";
}
add_shortcode("sh", "shortcode_function");
问题是,如果多次使用maps快捷码,上述示例将多次包含库。我怎样才能防止这种情况?或者更准确地说:我如何才能“以正确的方式”做到这一点?我可以使用wp_enqueue_script() 在那个地方?

只有一个要求:我真的需要这个来包含那个库only-when-shortcode-is-used.

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

是的,你应该使用wp_enqueue_script(). 脚本将加载到页脚中(操作:wp_footer()). 就一次。

要检查可用挂钩、函数等的顺序,请尝试我的插件T5 WP Load Order.

SO网友:Christian Žagarskas

当存在短代码时,我们确实可以有条件地通过短代码加载CSS和JS文件,而无需使用任何过于复杂的函数:

请参阅此处的注释#348349:Enqueue Scripts / Styles when shortcode is present

结束

相关推荐

Add_ShortCode()在函数内不起作用

我有一个自定义的帖子类型bhour, 带字段bh_shortcode. 保存这种类型的帖子时,我希望它根据帖子的值bh_shortcode.如果bh_shortcode 是“test”,当一个[测试]快捷码标记出现在一个普通的post类型上时,不会发生任何事情--[测试]文本不会被替换。如果我放置add_shortcode(\'test\',\'save_bhour_details\'); 在功能之外,将替换[测试]文本。如何使用add_shortcode 函数内部的另一个函数?function bhou