web-dev-qa-db-ja.com

カスタム分類法固有のJavaScript

私はいくつかのスクリプトとスタイルを特定の分類法ページに追加しようとしています。たとえば、「issue」カスタム分類法に該当する投稿にのみバナーローテータを表示するようにします。スクリプトとスタイルをいつエンキューするかを制御するためにis_tax( 'issue')を使用してみましたが、うまくいかないようです。これが私のfunctions.phpファイルのサンプルです:

function init_customizations() {
  if (is_tax('issue')) {
    wp_register_script('rotator_scripts',get_bloginfo('template_directory').'/includes/issue-rotator.js', array(), '1.0.0' );
    wp_enqueue_script('rotator_scripts');
    wp_register_style('rotator_styles',get_bloginfo('template_directory').'/includes/issue-rotator.css', array(), '1.0.0', 'screen');
    wp_enqueue_style('rotator_styles');
  }
}
add_action( 'init', 'init_customizations', 0 );

これは実際には何もヘッダに書きませんので、間違って呼び出しているのではないかと思います。

更新これは正しい答えが適用された最後のコードです。

function init_customizations() {
  if (is_tax('issue')) {
    wp_register_script('rotator_scripts',get_bloginfo('template_directory').'/includes/issue-rotator.js', array(), '1.0.0' );
    wp_enqueue_script('rotator_scripts');
    wp_register_style('rotator_styles',get_bloginfo('template_directory').'/includes/issue-rotator.css', array(), '1.0.0', 'screen');
    wp_enqueue_style('rotator_styles');
  }
}
add_action( 'wp_enqueue_scripts', 'init_customizations', 0 );
4
hereswhatidid

スクリプトをエンキューする関数の場合、実際に使用するアクションフックは、サイトの前面には "wp_enqueue_scripts"、管理側には "admin_enqueue_scripts"になります。これがスクリプトをエンキューするための適切な時期です。

Wp_headの前であればいつでも技術的に行うことができますが、これが最善の場所です。スクリプト出力が行われる前にできることがすべて確実に行われ、ロジックがすべて正しく機能するようにするためです。

3
Otto