如何有条件地将带有插件的CPT单一POST类型的脚本入队?

时间:2017-08-22 作者:Chris Stage

我正在编写一个插件,它定义了自己的CPT“属性”,我想将一个脚本专门放入单个帖子中。

它不用我尝试使用条件语句就可以运行,但我不需要在每个页面上加载它,所以我想将其设置为条件语句。

这段代码位于我的插件根目录中,就在我的include之后。

if ( \'properties\' == get_post_type() ) {
    if (wp_script_is(\'owl.carousel.js\', \'enqueued\')) {
        return;
    } else {
        wp_register_script(\'owl.carousel.min.js\', plugin_dir_url(__FILE__) . \'js/owl.carousel.min.js\');
        wp_enqueue_script(\'owl.carousel.min.js\');
    }
}
我也试过了is_sigular(\'properties\') 但这也没用。

我一定错过了一些愚蠢的事情。。。

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

确保代码在中运行wp_enqueue_scripts 行动挂钩。

还要检查脚本句柄\'owl.carousel.js\'. 在里面wp_script_is(), 它与后面2个函数中输入的不同\'owl.carousel.min.js\'.

add_action( \'wp_enqueue_scripts\', \'enqueue_properties_scripts\' );

function enqueue_properties_scripts() {
    if ( \'properties\' === get_post_type() ) {
        if ( wp_script_is( \'owl.carousel.min.js\', \'enqueued\' ) ) {
            return;

        } else {
            wp_register_script( \'owl.carousel.min.js\', plugin_dir_url( __FILE__ ) . \'js/owl.carousel.min.js\' );
            wp_enqueue_script( \'owl.carousel.min.js\' );
        }
    }
}

结束

相关推荐