【wordpress】jQueryをフッターで読み込むように書いたら動くんだけど動かない件
参考記事通りにjQueryをフッターに移動したんだけど、いらないプラグイン消していったら突然jQueryが読み込まれなくなった時の備忘録
アクションフック「wp_enqueue_scripts」に変えてみた
アクションフックを「init」→「wp_enqueue_scripts」に変えたらうまくいった
add_action( 'wp_enqueue_scripts', function() {
if ( is_admin() ) {
return;
}
global $wp_scripts;
$jquery = $wp_scripts->registered['jquery-core'];
$jquery_ver = $jquery->ver;
// wordpressのjquery削除
wp_deregister_script( 'jquery' );
wp_deregister_script( 'jquery-core' );
// jqueryを再登録
wp_register_script( 'jquery', false, ['jquery-core'], $jquery_ver, true );
wp_register_script( 'jquery-core', "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js", [], $jquery_ver, true );
wp_register_script( 'jquery-original', get_template_directory_uri() . '/shared/js/独自のjsファイル.js', [], $jquery_ver, true );
} );
wordpressに積まれているjqueryは遅いって聞いたからCDNの方を読み込んだコード
参考記事
https://capitalp.jp/2018/05/02/complex-between-jquery-and-frontend/
原因
lightbox系のプラグインを切ったら突然jqueryが読み込まれなくなった。
読み込まれなくなっというか、1つ飛ばされて読み込まれた。(cdn飛ばされて独自のjsファイルは読み込まれた、当然jquery読み込まれてないっすよってエラー吐いてた)
どうにもプラグイン側のjsファイルを読み込む読み込まないで挙動が変わるっぽいのでアクションフックを「wp_enqueue_scripts」に変えたらプラグイン切ろうが切るまいが動いた。
読み込み周り調べていたら、アクションフックの「wp_enqueue_scripts」はテンプレート内で「wp_head」関数が読み込まれたら実行で、「init」はWordPressの読み込みが完了すると呼び出される(この時点ではプラグインとテーマは読み込まれていない)らしいので単純な読み込みの順番が問題なのかな?
よくわからん
▼アクションフックの説明とか載ってる
https://yukiyuriweb.com/introduction-to-wordpress-action-and-filter-hooks/
▼読み込み順参考になるかも
https://qiita.com/ichi_404/items/2c999847453116aab842
jQueryUIとか「Datepicker」くらいでしか使ったことない