Как правильно подключить несколько CSS файлов?
Я разрабатываю сайт на WordPress с использованием Bootstrap и мне нужно подключить несколько таблиц стилей. Однако, когда я подключаю их следующим образом, в исходном коде страницы отображаются только первый и третий файлы стилей. Я проверил, что все три файла присутствуют на сервере.
wp_enqueue_style( 'mamies-wafers-bootstrap-min', '/wp-content/themes/mamies-wafers/css/bootstrap.min.css' );
wp_enqueue_style( 'mamies-wafers-carousel', '/wp-content/themes/mamies-wafers/css/carousel.css' );
wp_enqueue_style( 'mamies-wafers-style', get_stylesheet_uri() );
Что я делаю не так?

Функция wp_enqueue_style()
использует следующий формат и параметры:
wp_enqueue_style( $handle, $src = false, $deps = array(), $ver = false, $media = 'all' );
В вашем случае можно попробовать следующее:
<?php
/**
* Правильный способ подключения скриптов и стилей
*/
function namespace_theme_stylesheets() {
wp_enqueue_style( 'mamies-wafers-bootstrap-min', get_template_directory_uri() .'/css/bootstrap.min.css', array(), null, 'all' );
wp_enqueue_style( 'mamies-wafers-carousel', get_template_directory_uri() .'/css/carousel.css', array(), null, 'all' );
wp_enqueue_style( 'mamies-wafers-style', get_stylesheet_uri(), '', null, 'all' );
}
add_action( 'wp_enqueue_scripts', 'namespace_theme_stylesheets' );
Если вы планируете минифицировать ваш CSS, лучше сначала использовать wp_register_style
для каждого стиля, а затем подключить его.
<?php
/**
* Правильный способ регистрации и подключения скриптов и стилей
*/
function namespace_theme_stylesheets() {
wp_register_style( 'mamies-wafers-bootstrap-min', get_template_directory_uri() .'/css/bootstrap.min.css', array(), null, 'all' );
wp_register_style( 'mamies-wafers-carousel', get_template_directory_uri() .'/css/carousel.css', array(), null, 'all' );
wp_register_style( 'mamies-wafers-style', get_stylesheet_uri(), '', null, 'all' );
wp_enqueue_style( 'mamies-wafers-bootstrap-min' );
wp_enqueue_style( 'mamies-wafers-carousel' );
wp_enqueue_style( 'mamies-wafers-style' );
}
add_action( 'wp_enqueue_scripts', 'namespace_theme_stylesheets' );

Это сработало для меня
foreach( glob( get_template_directory(). '/css/*.css' ) as $file ) {
$file = str_replace(get_template_directory(), '', $file);
echo ( get_template_directory_uri() . $file);
// $file содержит имя и расширение файла
wp_enqueue_style( $file.'style', get_template_directory_uri() . $file);
}
foreach( glob( get_template_directory(). '/js/*.js' ) as $file ) {
$file = str_replace(get_template_directory(), '', $file);
// $file содержит имя и расширение файла
wp_enqueue_script( $file . 'script', get_template_directory_uri() . $file);
}

function wpdocs_theme_name_scripts() {
$cssFolderPath = dirname(__FILE__)."/check_for_additional_path_to_be_added/";
$fileNames = array();
foreach (new DirectoryIterator($cssFolderPath) as $file) {
$filetype = pathinfo($file, PATHINFO_EXTENSION);
if ($file->isFile() && $filetype == "css") {
array_push($fileNames, $file->getFilename());
}
}
foreach ($fileNames as $name){
wp_enqueue_style( $name, "/wp-content/plugin_or_theme_cssPath/".$name );
}
}
add_action( 'wp_enqueue_scripts', 'wpdocs_theme_name_scripts' );
Это то, что я разработал самостоятельно для загрузки CSS файлов, для JS реализация очень похожа.

Также, что если у автора вопроса нет доступа к DirectoryIterator? Что если автору не нужно подключать каждый CSS-файл из определенной директории?

Мой код собирает все имена файлов с расширением CSS из заданной директории и загружает их в WordPress. Если автору вопроса они не нужны, их можно просто удалить из директории.
