スクリプトのjs
フォルダ全体を持っているので、それらすべてをwp_enqueue_script()
で一つずつロードしなければならないのは面倒です。
それらすべてが入っているディレクトリを単に挿入する方法はありますか。
wp_enqueue_script
を使用して多数のファイルをエンキューすることに問題はありません。あなたがそれをイライラすると言っているのなら、これには簡単な解決策があります。
PHPはファイルとディレクトリをリストすることができる機能を提供します。 glob
を使用すると、ディレクトリ内のすべての.js
ファイルを一覧表示してから、それらをループでエンキューできます。
function enqueue_my_scripts(){
foreach( glob( get_template_directory(). '/path/*.js' ) as $file ) {
// $file contains the name and extension of the file
wp_enqueue_script( $file, get_template_directory_uri().'/path/'.$file);
}
}
add_action('wp_enqueue_scripts', 'enqueue_my_scripts');
一面ではないのは、glob
が相対パスを使用するのに対し、wp_enqueue_script
はURLを使用するということです。そのため、フォルダのパスとURIを取得するためにさまざまな関数を使用しました。
WordPress 4.9では、相対パス(get_template_directory)を使用すると、完全なパスとして$ fileが返されました。これは共有サーバーでは使用できません。ファイル名だけを返すためにsubstr関数を使用しなければならず、それからURIを構築しなければならないことがわかりました。
foreach( glob( get_template_directory(). '/path/*.js' ) as $file ) {
$filename = substr($file, strrpos($file, '/') + 1);
wp_enqueue_script( $filename, get_template_directory_uri().'/path/'.$filename);
}