Получаю ошибку при использовании filemtime() с wp_enqueue_style

9 авг. 2017 г., 12:44:58
Просмотры: 15.8K
Голосов: 13

Я пытаюсь изменить версию файла стилей с помощью функции filemtime() вместе с wp_enqueue_style, используя следующий код:

function pro_styles()
{
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() .'/child-style.css', array(), filemtime(get_stylesheet_directory_uri() .'/child-style.css'), 'all' );
}

add_action( 'wp_enqueue_scripts', 'pro_styles' );

но получаю предупреждение:

Warning: filemtime(): stat failed for.....

Хотя я уверен, что файл существует

0
Все ответы на вопрос 2
0
29

Это происходит потому, что вы получаете его через URL, но для filemtime() требуется путь. Вместо этого используйте get_stylesheet_directory(). Эта функция возвращает путь:

function pro_styles()
{
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() .'/child-style.css', array(), filemtime(get_stylesheet_directory() .'/child-style.css'), 'all' );
}

add_action( 'wp_enqueue_scripts', 'pro_styles' );
9 авг. 2017 г. 12:55:02
2

Для расширения ответа Jacob Peattie для тех, у кого CSS файл находится в пользовательском плагине, можно использовать:

filemtime( plugin_dir_path(dirname(__FILE__)).'plugin-folder/css-file-path.css' )
2 янв. 2020 г. 18:17:12
Комментарии

Отлично, это работает!

Iggy Iggy
25 июн. 2020 г. 18:08:15

Хорошая находка! Более того, если файл находится в папке вашего собственного плагина, достаточно использовать filemtime(plugin_dir_path(__FILE__) . 'css-file-path.css').

Sygmoral Sygmoral
17 мая 2023 г. 15:54:11