web-dev-qa-db-ja.com

CPTシングルポストタイプのスクリプトをプラグインで条件付きでエンキューするにはどうすればよいですか?

私はそれ自身のCPTの "プロパティ"を定義するプラグインを書いています、そして私は特に単一の投稿でスクリプトをエンキューしたいです。

それは私の条件付きステートメントを試みることなくちょうどうまくいくが、私はすべてのページにロードするためにそれを必要としないので私はこの条件付きを作りたい。

このコードは、インクルード直後のプラグインルートにあります。

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')も試しましたが、それもうまくいきませんでした。

私は愚かな何かを見逃しているにちがいありません...

2
Chris Stage

コードが wp_enqueue_scripts actionフックで実行されていることを確認してください。

あなたのスクリプトハンドル'owl.carousel.js'もチェックしてください。 wp_script_is()では、'owl.carousel.min.js'として入力した2つの新しい関数と同じではありません。

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' );
        }
    }
}
1
ClemC