I guess you wanted to enqueue all the files in your css and js directory of your theme. Thats the reason you are trying to use the scandir()
. get_template_directory_uri()
returns URL not the directory path. You need to use get_template_directory()
for directory.
If you wanted to do that, then do it in functions.php
function enqueue_all_front_resources(){
$js_directory = get_template_directory().'/js/';
$all_js_files = array_diff(scandir($js_directory), array('..', '.'));
// to avoid .. and . from the scandir function i used array_diff
//now add the js with wp_enqueue_script()
foreach($all_js_files as $js_file){
wp_enqueue_script( $js_file.'-name', get_template_directory_uri() . '/js/'.$js_file );
}
$css_directory = get_template_directory().'/css/';
$all_css_files = array_diff(scandir($css_directory), array('..', '.'));
//now add the css with wp_enqueue_style()
foreach($all_css_files as $css_file){
wp_enqueue_style( $css_file.'-name', get_stylesheet_uri().'/css/'.$css_file );
}
}
add_action('wp_enqueue_scripts','enqueue_all_front_resources');
Disadvantages in Doing this
- Unwanted resources will be added thus eats server as well browser(many file request and processing all scripts in browser makes little slow)
- You can’t give dependency correctly unless you name the js file with dependecy at the end of file name and parse add the dependency in enqueue_scripts and you need to take care of sorting too.
I Won’t recommand this method. I answered this for the interest of automation. Since you are thinking the dynamic way. Dynamic is good but we needs to be sure that it will work correctly and efficiently.