我正在开发一个Wordpress插件,该插件(除其他外)通过短代码在帖子中呈现了javascript播客播放器。我要做的是在插件文件中编写shortcode函数,以根据播放器的需要返回脚本标签-见下文。
这工作得很好,但是我的插件被审阅小组拒绝,并评论说我应该使用内置的Wordpress函数来排队脚本。但是,无论我尝试什么,我都无法在我的shortcode函数中使用wp_enqueue_script
。我也尝试过预先注册它-但无论哪种方式,都不会加载javascript。
有人知道我要实现的解决方案吗?
更新:这是一段代码,我正在努力:
function podigee_player( $atts ) {
$atts = shortcode_atts(
array(
'url' => '',
),
$atts
);
return '<script class="podigee-podcast-player" src="https://cdn.podigee.com/podcast-player/javascripts/podigee-podcast-player.js" data-configuration="' . $atts['url'] . '/embed?context=external"></script>';
}
add_shortcode( 'podigee-player', 'podigee_player' );`
答案 0 :(得分:1)
很好,所以我明白了您要实现的目标,并且我也明白了为什么Wordpress会阻止此操作。
一种可接受的排队脚本的方法如下。
您需要陈述您想要排队的脚本,并告诉Wordpress它需要在哪里发生。在这种情况下,该脚本应与其他默认脚本一起添加到头部。
我在结尾处说的数字是版本号,如果您需要更新的话,由于脚本是外部的,因此这是令人怀疑的。
function podigee_external_scripts() {
wp_enqueue_script( 'podigee-podcast-player', 'https://cdn.podigee.com/podcast-player/javascripts/podigee-podcast-player.js', '20181023' );
}
add_action( 'wp_enqueue_scripts', 'podigee_external_scripts' );