単一の投稿ページにスクリプトを追加するだけではうまくいきません。 is_single()を使用して特定のスクリプトを含めたり除外したりする必要がありますが、どちらを試してもうまくいきません。
私はカスタムシングルポストテンプレートの上にテンプレートタグを持っています...
<?php /* Template Name: Single Default */ ?>
そしてこれを使ってfunctions.phpからスクリプトを呼び出します。
if (!is_admin()) {
if (is_single()) {
wp_register_script( 'jquery-scroll', get_bloginfo('stylesheet_directory').'/libs/jquery.jscrollpane.min.js' );
wp_enqueue_script( 'jquery-scroll' );
}
}
これはいくつかの異なる問題の1つである可能性があります。
wp_enqueue_script
がwp_enqueue_scripts
にフックされていることを確認する必要があります。さもなければ、呼び出しは遅すぎるか(おそらくこの場合は?)早すぎるでしょうか。
これを試してみてください(あなたのPHPも少し片付けました:
function wpse53364() {
if( !is_admin() && is_single() ) {
wp_register_script( 'jquery-scroll', get_bloginfo('stylesheet_directory').'/libs/jquery.jscrollpane.min.js' );
wp_enqueue_script( 'jquery-scroll' );
}
}
add_action( 'wp_enqueue_scripts', 'wpse53364' );
質問からは分かりませんが、「カスタムシングル投稿テンプレート」にsingle.php
を使用している場合は、その「Template Name:...」ヘッダーを使用しないでください。 WordPress テンプレートの階層構造 は、どのファイルを使うべきかを自動的に認識します。
カスタムページテンプレートを使用しているという事実は、POSTSとは対照的に、このスクリプトを使用してスクリプトをPAGESにエンキューしようとしているのかどうかという疑問に思います。その場合は、is_single()
をis_page()
またはis_singular( 'page' )
に置き換える必要があります。