WordPress':简码功能中的wp_enqueue_script?

时间:2018-10-17 05:20:25

标签: wordpress

我正在开发一个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' );`

1 个答案:

答案 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' );