web-dev-qa-db-ja.com

TEMPLATEPATHを使用してJavaScriptファイルをインクルードすると、wp_enqueue_script()が機能しないのはなぜですか?

私は私のJSファイルを追加するためにここでからのヒントを使用しようとしています

インストールしたatahualpaテーマのfunctions.phpに以下を入れました

function lektor_init() {
  if (true) {
    wp_enqueue_script('lektor',TEMPLATEPATH.'/js/synteza.js');
  }
}
add_action('init','lektor_init'); 

TEMPLATEPATHはすでにそこで使われていたので、それを適応させただけです。しかし、それは現れません。

私は何をしましたか?

1
naugtur

TEMPLATEPATHはディレクトリパスであり、URLではありません。 get_template_directory_uri()を使う必要があります。

9
John P Bloch
function parent_theme_name_scripts() {
    wp_enqueue_script( 'lektor', get_template_directory_uri() . '/js/synteza.js', array(), '1.0.0', true );
}

add_action( 'wp_enqueue_scripts', 'parent_theme_name_scripts' );

あなたの両親にテーマ関数ファイルを追加してください。

ただし、親テーマにスクリプトを追加する場合は、 子テーマを作成しget_stylesheet_directory_uri() を使用して子テーマのfunctionsファイルにスクリプトを追加します。

add_action( 'wp_enqueue_scripts', 'child_theme_name_scripts' );
function child_theme_name_scripts() {
        wp_enqueue_script( 'lektor', get_stylesheet_directory_uri() . '/js/synteza.js', array(), '1.0.0', true );
    }

init ではなく wp_enqueue_scripts を使用してください。

0
Brad Dalton