¿Cómo cambiar la versión de .css en WordPress?
Como sugiere el título, no estoy muy seguro de cómo cambiar la versión de un archivo .css en mi tema. Por el momento, el versionado del .css es así:
<link rel='stylesheet' id='xxxx' href='https://www. site css/ styles.css?ver=4.6.1' type='text/css' media='all' />
¿Hay algún script que necesite ejecutar - dónde debería buscar para hacer la versión 4.6.2 como se muestra arriba?

El cuarto argumento, $ver
para wp_enqueue_style()
, te permite establecer la versión:
wp_enqueue_style( string $handle,
string $src = false,
array $deps = array(),
string|bool|null $ver = false,
string $media = 'all' );
Según la documentación:
$ver (string|bool|null) (Opcional) Cadena que especifica el número de versión de la hoja de estilos, si tiene uno, que se añade a la URL como un parámetro de consulta para evitar problemas de caché. Si la versión se establece como false, se añade automáticamente un número de versión igual a la versión actual de WordPress instalada. Si se establece como null, no se añade ninguna versión. Valor por defecto:
false

Gracias por eso - Supongo que lo que pregunto es 'cómo hago eso' - es decir, '¿cómo ejecuto ese script para generar una nueva versión?' Espero que tenga sentido...

¿Podrías actualizar tu pregunta con el código donde se llama a wp_enqueue_style()
? WordPress maneja el versionado automáticamente según la explicación de $ver
publicada en mi respuesta, así que asumo que $ver está establecido en false. Si deseas cambiarlo, modifica el argumento $ver a una nueva cadena (no usaría 4.6.2 ya que esa convención ya la usa WordPress), pero técnicamente funcionaría.

La mayoría de los temas usan la función wp_enqueue_style()
dentro de su archivo functions.php para agregar la hoja de estilos en el encabezado. Aquí está cómo averiguar si tu tema hace lo mismo.
Abre tu archivo wp-content/themes/NOMBRE_DE_TU_TEMA/functions.php
, y busca la línea que está agregando la hoja de estilos, como:
wp_enqueue_style('main_style', get_stylesheet_directory_uri() . '/style.css');
O como:
wp_enqueue_style( 'twentysixteen-style', get_stylesheet_uri() );
Puedes buscar por el ID (excepto la parte de
-css
)... si el ID es:main_style-css
, busca solomain-style
en tu archivo functions.php, y probablemente encontrarás la línea de código que estabas buscando.
Ahora que encontraste el código y sabes que tu tema agrega esta hoja de estilos usando wp_enqueue_style()
en el archivo functions.php, necesitas actualizar este código para la versión.
$style_ver = filemtime( get_stylesheet_directory() . '/style.css' );
wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', $style_ver );
Como puedes ver, este código obtiene la última hora de modificación del archivo style.css usando la función PHP filemtime()
y también convierte la hora a timestamp usando la función PHP time()
solo para mantener las cosas limpias.
Si no quieres que la versión cambie dinámicamente cada vez, puedes simplemente hacer esto:
wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', '1.5' );
Eso es básicamente todo. ¡Paz!

No obtuve mucho de estas respuestas, así que pensé en escribir lo que funcionó para mí. Sé que el codex dice:
$ver (string|bool|null) (Opcional) Cadena que especifica el número de versión de la hoja de estilos, si tiene uno, que se agrega a la URL como una cadena de consulta para evitar el almacenamiento en caché. Si la versión se establece en false, se agrega automáticamente un número de versión igual a la versión actual de WordPress instalada. Si se establece en null, no se agrega ninguna versión. Valor por defecto: false
Pero es muy críptico en cuanto a cómo funciona realmente. No pude hacer que un número de versión en wp_enqueue_style
activara un parámetro de consulta como ?ver=1.2.3
en mi hoja de estilos. Sin embargo, establecerlo en true permite que la versión declarada en la hoja de estilos realice un cache bust
de la hoja de estilos. (sigue leyendo)
Dentro de tu style.css debes nombrar tu tema. Esto es requerido por WP. Sin embargo, otras opciones como version
son a las que hace referencia el booleano de versión de wp_enqueue_style.
/******************************************************************
Site Name: MySite.com
Author: @BenRacicot
Version: 4.0 // <- número de versión de wp_enqueue_style
Stylesheet: Main Stylesheet
******************************************************************/
Ahora, cuando cambio eso a Version: 4.1
obtengo style.css?cache-bust=0.24135995238933283

Puedes simplemente usar time()
al momento de encolar estilos o scripts de esta manera...
Sin usar la función de WordPress wp_enqueue_style()
<link rel='stylesheet' id='xxxx' href='https://www.site/css/styles.css?ver=<?php echo time(); ?>' type='text/css' media='all' />
Usando la función wp_enqueue_style()
wp_enqueue_style('style_sheet_name', get_stylesheet_directory_uri() . '/custom_style.css', '', time());
O
wp_enqueue_style('style_sheet_name', get_stylesheet_uri() . '/custom_style.css', '', time());
