会員サイトをリニューアルしました! 新サイトはこちら

load_scripts.php と widget.php の関数の書き方について < ご要望

フォーラムをリニューアルしました!
今後は、新フォーラムをご利用ください。

load_scripts.php と ...
 
通知
すべてクリア

[解決済] load_scripts.php と widget.php の関数の書き方について

5 投稿
2 ユーザー
0 Likes
1,445 表示
DRILL LANCER
(@rick_addison)
Active Member
Topic starter
 

load_scripts.php と widget.php の関数の書き方について要望があります。

というのは、ウィジェットエリアのデザインをカスタマイズしたり、読み込むスクリプトを変更したりしたいからです。

現状下記の様な書き方をしていると思いますが、下記の状態だとカスタマイズしにくくて困っています。

add_action( 'hoge', function() { piyo; } );

下記例のような形に書き換えることでカスタマイズ性が向上するので、ウィジェットエリアと読み込むスクリプトの関数のみでも下記例のようにしていただければ幸いです。

例:

if ( ! function_exists( 'hoge' ) ) {
function hoge () {
piyo;
}
add_action( 'fuga', 'hoge' );
}

 
投稿済 : 30/11/2019 10:18 am
了(開発者)
(@ryo)
Illustrious Member Admin
 

あまり変更されたくない部分なので、あえて無名関数を使用しています。

というのも、テーマのファイル構造などを整理してファイル名を変える可能性もあるので、テーマ機能の提供に必須なファイルを確実に読み込ませたいためです。

どうしても、それらの機能をオフにしたい場合などはフックを追加する形で上書き処理もできると思うのですが、いかがでしょうか...?

This post was modified 5年前 by 了(開発者)
 
投稿済 : 30/11/2019 11:20 am
DRILL LANCER
(@rick_addison)
Active Member
Topic starter
 

フィルターフック or アクションフックによる対応でよろしくお願いします。

ただし、ウィジェットエリアにおいて同じIDを適用することで内容の上書きが不可能な場合はウィジェットエリアの部分を関数から分離してオーバーライド可能な関数で再定義していただけたら幸いです。

P.S.

jQuery をフッターに移動するコードですが、現状のコードだとプラグインがヘッダーで jQuery に依存するコードを実行しようとした場合、jQuery も一緒に持ち上げられる現象が発生する可能性があります。

なので、下記のように wp_enqueue_script の処理を wp_footer で行う方が個人的には良さそうに思えます。

/**
* レンダリングブロックしているJavascriptの読み込みを遅らせる by 寝ログ
* https://nelog.jp/header-js-to-footer
*/
function move_scripts_head_to_footer_ex() {
// ヘッダーのスクリプトを取り除く.
remove_action( 'wp_head', 'wp_print_scripts' );
remove_action( 'wp_head', 'wp_print_head_scripts', 9 );
remove_action( 'wp_head', 'wp_enqueue_scripts', 1 );

// フッターにスクリプトを移動する.
add_action( 'wp_footer', 'wp_print_scripts', 5 );
add_action( 'wp_footer', 'wp_print_head_scripts', 5 );
add_action( 'wp_footer', 'wp_enqueue_scripts', 5 );
}
add_action( 'wp_enqueue_scripts', 'move_scripts_head_to_footer_ex' );
 
投稿済 : 30/11/2019 11:51 am
了(開発者)
(@ryo)
Illustrious Member Admin
 
投稿者:: @rick_addison

jQuery をフッターに移動するコードですが、現状のコードだとプラグインがヘッダーで jQuery に依存するコードを実行しようとした場合、jQuery も一緒に持ち上げられる現象が発生する可能性があります。

このことも理解していますが、これはプラグイン側の問題ですし、さすがに、プラグイン側がヘッダーで読み込もうとしているものをテーマ側からフッターへ強制するのはちょっと違うかなと...。

 
投稿済 : 01/12/2019 3:56 am
DRILL LANCER
(@rick_addison)
Active Member
Topic starter
 

ウィジェットについては子テーマから追加できそうで、ウィジェットのデザインも納得いくデザインだったので(最悪 CSS で調整すれば良さそう)子テーマから修正することで対応します。

CSS & JS については wp_deregister_script や wp_deregister_style で対応したいと考えております。

お手間を煩わせてしまい申し訳ありませんでした。

This post was modified 5年前 by DRILL LANCER
 
投稿済 : 30/12/2019 8:56 pm
共有: