このコードで、投稿のコンテンツにショートコードがある場合にのみ、特定のスクリプトをロードするためにhas_shortcode()
関数を使用しようとしています。
wp_register_script( 'shortcode-js-file' , FILE_URI, array( 'jquery'), '', true );
if(isset($post->post_content) && has_shortcode($post->post_content, 'shortcode_name')) {
wp_enqueue_script( 'shortcode-js-file');
}
そのため、上記のコードでは、投稿にそのショートコードがあるかどうかにかかわらず、そのショートコードがあるかどうかにかかわらず、すべてのページにスクリプトを登録しています。
私が知りたいのは、if
ステートメントの中にwp_register_script
を入れるべきかどうかです。それがあまりにもリソース集約的でないなら、私はむしろwp_register_script
コードをすべて1つの関数にまとめたいので、それを外側に残すことにします。
PS。私の問題を明確に示すために、私が使用しているフックや関数は追加しませんでした。私が調べたいものにとって重要ではないからです。
wp_register_script()
は配列にエントリを追加するだけで、リソースを大量に消費することはありません。 WP_Dependencies::add()
を参照してください。
スクリプトを早めに登録する ことで衝突を避けることができます ので、wp_loaded
の場合は必ずそうしてください。