Wp_enqueue_script()を使用してJavaScriptファイルをエンキューしようとしていますが、まったく機能していません。これが私のコードです:
function load_css_js() {
wp_enqueue_style('gdgt-base', get_template_directory_uri() . '/css/gdgt-base.css');
wp_enqueue_style('gdgt-icon', get_template_directory_uri() . '/icons/css/gdgt.css', true);
wp_register_script('gdgt-base', get_template_directory_uri() . '/js/gdgt-base.js', array( 'jquery' ) , true);
wp_enqueue_script('gdgt-base');
}
add_action('wp_enqueue_scripts', 'load_css_js');
しかし、デフォルトのWP Javasciprtの登録を解除し、他の場所からjqueryを登録すると、うまくいきます。この問題の原因は何ですか?助けてくれてありがとう!
wp_enqueue_style
および wp_enqueue_script
は多くのパラメーターを受け入れます。正しい順序で使用することが非常に重要です。そうしないと、これらの関数は失敗します。
これは各機能のためのパラメータの完全なセットです。
wp_enqueue_style( $handle, $src, $deps, $ver, $media );
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
あなたのwp_enqueue_style
では、$handle
、$src
を正しく定義していますが、$deps
からtrue
までは正しくありません。 wp_enqueue_script
についても同様です。
だからここにあなたの固定機能です。
function load_css_js() {
wp_enqueue_style( 'gdgt-base', get_template_directory_uri() . '/css/gdgt-base.css', false, NULL, 'all' );
wp_enqueue_style( 'gdgt-icon', get_template_directory_uri() . '/icons/css/gdgt.css', false, NULL, 'all' );
wp_register_script( 'gdgt-base', get_template_directory_uri() . '/js/gdgt-base.js', array( 'jquery' ), NULL, false );
wp_enqueue_script( 'gdgt-base' );
}
add_action( 'wp_enqueue_scripts', 'load_css_js' );
詳細については、codexの各機能に関する文書を参照してください。
私のような他の馬鹿のために、私は私がここに貢献すると思いました。 :-)
依存関係にarray( '' )
の代わりにarray()
を書いていたので、たった1時間を費やしました。
違いは違います。
wp_enqueue_script( 'footerScript', get_stylesheet_directory_uri() . '/assets/js/appFooter.js', array( '' ), false, true );
そして
wp_enqueue_script( 'footerScript', get_stylesheet_directory_uri() . '/assets/js/appFooter.js', array(), false, true );
...最初のものはロードされません。第二のものになります。 :-)
@ Robert_Hueの答えが私の答えにつながりました。
スクリプトを登録してエンキューするときは、wp_register_script()およびwp_enqueue_script()を呼び出す必要はありません。 wp_enqueue_script()を呼び出すだけです。
wp_enque_scriptの基本的な構文は次のとおりです。
wp_enqueue_script( string $handle, string $src = '', array $deps = array(), string|bool|null $ver = false, bool $in_footer = false )
これであなたのコードによれば、次のようになるはずです。
function load_css_js() {
wp_enqueue_style('gdgt-base-style', get_template_directory_uri() . '/css/gdgt-base.css');
wp_enqueue_style('gdgt-icon', get_template_directory_uri() . '/icons/css/gdgt.css');
wp_enqueue_script('gdgt-base-script', get_template_directory_uri() . '/js/gdgt-base.js', array( 'jquery' ) , '2019' true);
}
add_action('wp_enqueue_scripts', 'load_css_js');
[訪問]: https://developer.wordpress.org/reference/functions/wp_enqueue_script/
詳細についてはのドキュメントを参照してください。