Solución al error de filemtime() con wp_enqueue_style en WordPress

9 ago 2017, 12:44:58
Vistas: 15.8K
Votos: 13

Estoy intentando cambiar la versión de la hoja de estilos usando la función filemtime() con wp_enqueue_style con el siguiente fragmento de código:

function pro_styles()
{
// Cargar hoja de estilos con versión basada en tiempo de modificación
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' );

pero me está mostrando un aviso:

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

Aunque estoy seguro de que el archivo existe

0
Todas las respuestas a la pregunta 2
0
29

Es porque lo estás recuperando mediante una URL, pero filemtime() requiere una ruta. Usa get_stylesheet_directory() en su lugar. Eso devuelve una ruta:

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 ago 2017 12:55:02
2

Solo para ampliar la respuesta de Jacob Peattie para las personas que tienen un archivo CSS en un plugin personalizado, puedes usar

filemtime( plugin_dir_path(dirname(__FILE__)).'plugin-folder/css-file-path.css' )
2 ene 2020 18:17:12
Comentarios

¡genial, funciona!

Iggy Iggy
25 jun 2020 18:08:15

¡Buen hallazgo! Además, si el archivo está en la misma carpeta de tu propio plugin, filemtime(plugin_dir_path(__FILE__) . 'css-file-path.css') es suficiente.

Sygmoral Sygmoral
17 may 2023 15:54:11